我的getter / setter类如下:
package cage;
public class hashtaggs {
private String a;
public String getHashtag()
{
return a;
}
public void setHashTag(String hashtag)
{
this.a=hashtag;
System.out.println(a);
}
}
此类中使用了get方法
public class SaMain extends Application
{
public static void main(String []args) throws IOException
{
launch(args);
hashtaggs h=new hashtaggs();
String xh=h.getHashtag();
System.out.println(xh);
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Just a program");
GridPane grid = new GridPane();
grid.setAlignment(Pos.CENTER);
grid.setHgap(10);
grid.setVgap(10);
grid.setPadding(new Insets(25, 25, 25, 25));
Text scenetitle = new Text("Choose Your Input Method");
scenetitle.setFont(Font.font("Tahoma", FontWeight.NORMAL, 15));
grid.add(scenetitle,1,0,3,1);
Button tbtn = new Button();
tbtn.setText(" Click here for input 1");
tbtn.setOnAction(new EventHandler<ActionEvent>()
{
@Override
public void handle(ActionEvent event)
{
try
{
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("Input1.fxml"));
Parent root1 = (Parent) fxmlLoader.load();
Stage stage = new Stage();
stage.setScene(new Scene(root1, 640, 480));
stage.show();
((Node)(event.getSource())).getScene().getWindow().hide();
}
catch(Exception e)
{
e.printStackTrace();
}
}
});
Button sbtn = new Button();
sbtn.setText(" Click here to input 2");
sbtn.setOnAction(new EventHandler<ActionEvent>()
{
@Override
public void handle(ActionEvent event)
{
try
{
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("Input2.fxml"));
Parent root1 = (Parent) fxmlLoader.load();
Stage stage = new Stage();
stage.setScene(new Scene(root1,640,480));
stage.show();
}
catch(Exception e)
{
e.printStackTrace();
}
}
});
StackPane troot = new StackPane();
troot.getChildren().add(tbtn);
StackPane sroot = new StackPane();
sroot.getChildren().add(sbtn);
grid.add(troot, 1, 4,3,1);
grid.add(sroot, 1, 5,3,1);
Scene scene = new Scene(grid, 640, 480);
primaryStage.setScene(scene);
primaryStage.show();
}
}
System.out.println(a)
打印字符串,但是当我使用getHashtag()
时,我无法获得返回为null的字符串的值。我从javafx ui条目的控制器获取字符串值。我在使用get方法之前使用了launch(args);
。可能是什么问题?
答案 0 :(得分:2)
您没有设置值。你直接使用 getter 。
hashtaggs h=new hashtaggs();
h.setHashtag(parameter);
String xh=h.getHashtag();
始终记住您需要先使用 setter 设置值,然后才能使用 getter 访问它。
如需更多信息,请阅读:http://www.tutorialspoint.com/java/java_encapsulation.htm
答案 1 :(得分:1)
在setHashTag
方法中,您传递string variable
并将其设置为a
。并在此方法中打印此值。
如果您希望按getHashtag()
获取值,则必须首先初始化对象意味着首先必须调用setHashTag
方法和调用getHashtag()
。
此代码可以使用:
hashtaggs h=new hashtaggs();
h.setHashTag("string value");
String xh = h.getHashtag();
System.out.println(xh);
注意:作为命名约定,类名应以大写字母开头 字母并且是一个名词,例如字符串,颜色
希望这有助于你。