Java 是否有类似于Class.getObject(Hello.a,0)的函数?
比如我有这样的课Java 是否有类似于Class.getObject(Hello.a,0)的函数?,java,Java,比如我有这样的课 class Hello { private int a; public void Hello(int a){ this.a = a; } public int geta(){ return this.a; } } Arraylist <Hello> arr = new Arraylist <Hello>(); Random r = new Random(); Hello h; for (int i = 0; i<10; i++){ h = ne
class Hello {
private int a;
public void Hello(int a){
this.a = a;
}
public int geta(){
return this.a;
}
}
Arraylist <Hello> arr = new Arraylist <Hello>();
Random r = new Random();
Hello h;
for (int i = 0; i<10; i++){
h = new Hello (r.nextInt(10));
arr.add(h);
}
从这个类中,我创建了5个对象
Hello a = new Hello(0);
Hello b = new Hello(1);
Hello c = new Hello(2);
Hello d = new Hello(3);
Hello e = new Hello(4);
是否有下面这样的函数来返回a的以下值的真值或假值
Class.getObject(Hello.a,0) >> return true
Class.getObject(Hello.a,5) >> return false
--------------------------------------编辑-------------------------------------------
很抱歉我的解释不好,在我的例子中,我使用了Arraylist arr=new Arraylist();来填充Hello类。
并使用Random r=new Random();为Hello构造函数生成int
所以我的代码是这样的
class Hello {
private int a;
public void Hello(int a){
this.a = a;
}
public int geta(){
return this.a;
}
}
Arraylist <Hello> arr = new Arraylist <Hello>();
Random r = new Random();
Hello h;
for (int i = 0; i<10; i++){
h = new Hello (r.nextInt(10));
arr.add(h);
}
谢谢你阅读我的问题,也很抱歉我的英语不好。不,Java没有保留所有对象及其关联的“id”的“注册表”。如果不对类的结构施加太多限制,它也无法做到这一点 但是,没有什么可以阻止您实现自己的对象“注册表”:您可以定义一个定义整数ID与其对应对象之间的对应关系的
Map
,在Hello
中使该映射保持静态,并在构建期间向其添加对象。但是,这种方法是危险的,因为它可以防止创建的对象被垃圾收集。不,Java没有保留所有对象及其关联的“id”的“注册表”。如果不对类的结构施加太多限制,它也无法做到这一点
但是,没有什么可以阻止您实现自己的对象“注册表”:您可以定义一个定义整数ID与其对应对象之间的对应关系的
Map
,在Hello
中使该映射保持静态,并在构建期间向其添加对象。但是,这种方法是危险的,因为它可以防止所创建的对象被垃圾收集。在Java中确实不能这样做,但我不明白为什么要这样做
只需使用:
public boolean check(int b){
return b == a;
}
因此:
关于您的编辑:
这应该仍然适用于这个目的:
if(Object.check(n))
应该可以做到这一点。在Java中确实不能做到这一点,但我不明白为什么要这样做
只需使用:
public boolean check(int b){
return b == a;
}
因此:
关于您的编辑:
这应该仍然适用于该目的:
if(Object.check(n))
应该起作用。什么?只需创建一个Hello
对象,获取其a
字段的值并对其进行比较。您可以创建这些对象的列表并进行迭代,直到找到值为5的对象。或者类似的方法。如果你没有Hello
实例,那么你在测试什么?void
中的void Hello(int a)
实际上创建了一个名为Hello
的方法,它不是构造函数。与其发明语法或方法名称,不如说你需要它做什么?什么?只需创建一个Hello
对象,获取其a
字段的值并对其进行比较。您可以创建这些对象的列表并进行迭代,直到找到值为5的对象。或者类似的方法。如果您没有Hello
实例,那么您要测试什么?void
中的void Hello(int a)
实际上创建了一个名为Hello
的方法,它不是构造函数。与其发明语法或方法名称,你说你需要它做什么怎么样?为什么不直接返回b==a
?为什么不直接返回b==a
?