java 判断自定义类型_有没有办法检查给定的类类型是属于Java对象还是自定义对象...

我正在寻找任何方法来检查类的给定属性的类型是自定义对象类型(例如,Person)还是Java对象(例如,String,Long,原始类型)类型.如果使用了instanceof,则会检查所有Java类型.任何人都可以建议一种方法来检查,如果有的话存在.

解决方法:

Java非常“基于自身”.许多SDK可以被视为“自定义”或“内置”,具体取决于您正在查看它的方式.

例如,Exception内置于Java中,但也是用Java编写的.您可以自己编写类似的代码,但是根据您所说的我猜您会认为它是“Java对象”.

类似地,ArrayList也是用Java编写的,但因为它是一个实用类,我猜你会认为它是“自定义的”,虽然我不确定,因为它仍然包含在SDK中.

在不确切知道你在寻找什么的情况下,我能根据你所说的(String,Long等)猜测的最接近的分组是java.lang包.在words of the SDK documentation本身中,java.lang包:

Provides classes that are fundamental to the design of the Java programming language.

您可以检查对象的类的包名是否在java.lang中:

static class A {

}

public static void main (String[] args) {

String test1 = "";

A test2 = new A();

int test3 = 3;

System.out.println(isJavaLang(test1));

System.out.println(isJavaLang(test2));

System.out.println(isJavaLang(test3));

}

public static boolean isJavaLang(Object check) {

return check.getClass().getName().startsWith("java.lang");

}

标签:java,types,reflection,class

来源: https://codeday.me/bug/20190713/1454557.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值