gpt4 book ai didi

java - 使用 Getter Setter JAVA 访问其他类的变量

转载 作者:行者123 更新时间:2023-12-01 19:06:50 25 4
gpt4 key购买 nike

我在使用多个类上的 getter 和 setter 访问变量时遇到问题。我抬头看this one但我太困惑了。

我有3种类型的用户:Admin (Position No: 0在mysql表中),Manager (Position No: 1) , Clerk (Position No:2) .

我有SeeReportsAndFeedbacks类(class)。我想通过选择position_no = 0 的行和1 给管理员和经理,2 给职员来显示所有报告。 if 语句已经完成了。

所以店员只能看到position_no=2的报告经理只能看到带有 position_no=0 的报告和 1管理员只能看到带有 position_no=0 的报告和 1

请帮助我。我被困在这里很长时间了。我的 getter setter 有什么问题?

如果我设置为Login_Form ,并调用 get 它在 girisyap() 中显示正确函数,但如果我在名为 SeeReportsAndFeedbacks 的其他类中调用 get它显示了 Users () constructor 中的第一个初始值而不是 girisyap() 上的设置值功能于 Login_Form .

tip value 将 mysql 数据库中的position_no 作为字符串,new1 value 正在将字符串解析(转换)为 if 语句的 int

screenshot

GIST

用户类别


public class Users {

private int id;
private String username;
private String fullname;
private String password;
private String phone;
private String gender;
private byte[] image;
private int position_no;

public Users () {
setPno(1); //firsst initialize
//getFullname();
}
public Users (int uid ,String uname, String fname, String upassword, String uphone, String ugender, byte[] uimage, int pno){

this.id = uid;
this.username = uname;
this.fullname = fname;
this.password = upassword;
this.phone = uphone;
this.gender =ugender;
this.image =uimage;
this.position_no = pno;
}
public Users (int pno){

setPno(pno);
}

public int getPno(){
return position_no;
}
public void setPno(int pno){
this.position_no = pno;
}}

SeeReportsAndFeedbacks 类(我删除了与问题无关的函数或其他一些 gui 内容。

public class SeeReportsAndFeedbacks { // extends javax.swing.JFrame

//CLIENT client = new CLIENT();
int new1 = 9999; //testing something
int PositionNoGetiren;
//sers loginf = new Users(0, null,null,null,null,null,null,new1);


public SeeReportsAndFeedbacks() {
//initComponents();

Users loginf = new Users();

PositionNoGetiren = loginf.getPno(); //gets initial value instead of set value on login_form
System.out.println("Babakingg " + PositionNoGetiren);

//int ananas = loginf.getPno();

//fillFeedbackJTable(jTable2);


}

public void fillReportJTable(){//JTable table

//loginf.setPno(2); it works if i manually set but it's useless
//System.out.println("Loginfvalue in see reports: " + loginf.getPno() + loginf.getUsername());
//new1 = loginf.getPno(); //not works shows 0

//see.getNo();

new1=PositionNoGetiren;

String selectQuery = "SELECT * FROM `users` WHERE `position_no` = ?";


if(new1==0){//admin

selectQuery = "SELECT * FROM `reports`";

}
if(new1==1){//manager

selectQuery = "SELECT * FROM `reports` WHERE `position_no` = 1";

}
if(new1==2){//clerk
selectQuery = "SELECT * FROM `reports` WHERE `position_no` = 2";
}
//}


}}

登录表单

public class Login_Form {

int positionNoGetiren;

/**
* Creates new form Login_Form
*/
public Login_Form() {

//initComponents();

//positionNoGetiren = 9999;

}

private void girisyap() {


//I DELETED ALL DATABASE RELATED THINGS FOR QUESTION.
//String tip = rs.getString("position_no"); //DETECTS CORRECTLY POSITION NO FROM DATABASE
String tip = "IT'S rs.getString(\"position_no\")"; //for posting question
System.out.println(tip);
int new1 = Integer.parseInt(tip);

//Users loginf = new Users(new1); //welcome yazisi icin
Users loginf = new Users(); //ONLY WORKS IN THIS CLASS.

loginf.setPno(new1); //set user type for reports class BUT IT'S NOT WORKING
System.out.println("Loginf degeri login_formdaki: " + loginf.getPno());

//THIS IF IS WORKING CORRECTLY.

if(new1==0){

//Admin form = new Admin();
//form.setVisible(true);
//form.pack();
//form.setLocationRelativeTo(null);
// form.setExtendedState(JFrame.MAXIMIZED_BOTH);

}
if(new1==1){

//Manager form = new Manager();
//form.setVisible(true);
//form.pack();
//form.setLocationRelativeTo(null);

}
if(new1==2){

//Clerk form = new Clerk();
//form.setVisible(true);
//form.pack();
//form.setLocationRelativeTo(null);
// form.setExtendedState(JFrame.MAXIMIZED_BOTH);
}

//this.dispose();




}

private void jButton_LoginActionPerformed(java.awt.event.ActionEvent evt) {
girisyap();}

}

最佳答案

你的 getter 和 setter 没有任何问题。

这很可能是解析 TIP 值的问题,无法将其解析为 INT,可能是一个带有奇怪值(如 2.00000004)的 float ,或者只是 null。尝试编写测试或记录查询返回的值,并检查这是否是您要查找的值。

关于java - 使用 Getter Setter JAVA 访问其他类的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59536686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com