如何在Java中将对象名称与字符串进行比较?
例如:
例如:
class_name obj = new class_name();
我想比较对象名obj
和一个字符串,正确的方法是什么?
class_name obj = new class_name();
我想比较对象名obj
和一个字符串,正确的方法是什么?
Map
。或者,您可以向您的类添加一个包含字符串(例如"obj"
)的name
字段:ClassName obj = new ClassName("obj");
if (obj.getName().equals(...))
...
您可以使用 instanceof
关键字来检查对象的类型
查看以下示例以获取更多详细信息
public void checkType(Object param) {
if( param instanceof String) {
System.out.println("param is a String");
}
else if( param instanceof Integer) {
System.out.println("param is an Integer");
}
}
我相信这是正确的做法..!!
您可以在这里查看更多细节
==
比较对象引用。它会找出两个操作数是否指向相同的对象。
如果您想检查两个字符串是否包含相同的字符,需要使用equals
来比较字符串。
至于您具体的问题,无法完成。
通过调用obj.getClass()
,你可以获得类的类名。但是你不能通过常规方式获取一个对象的变量名。
如果您想要访问本地变量,并且源代码是使用javac -g
选项编译以保留调试信息,则可以使用Bytecode Library like ASM来检索此详细信息。请参见4.3. Debug
使用javac -g编译的类包含其源文件的名称,源行号和字节码指令之间的映射,以及源代码中局部变量名称与字节码中局部变量插槽之间的映射。当可用时,调试器和异常堆栈跟踪中使用此可选信息。
如果您想要检索类级别/字段变量的名称,则可以使用java reflection API。
类名应为名词,采用混合大小写,每个单词的首字母大写。
遵守此规范可以让其他开发人员在阅读您的代码时不会感到不适。 - Kaadzia