中易网

Java两个不同的类之间如何连接,不是继承,求大神指教

答案:2  悬赏:10  
解决时间 2021-02-07 10:40
Java两个不同的类之间如何连接,不是继承,求大神指教
最佳答案
Class中有个方法 public native boolean isAssignableFrom(Class cls)用来判断子类是否继承于父类的或者父接口的。
你会这样子写:
Class clazz = ....;
clazz.isAssignableFrom(子类名称);返回true说明是挂号里的类的父类或父接口。
clazz.isAssignableFrom(子类名称)里的子类名称跟版本有关,好像是1.5以上的JDK这里的子类名称都是使用的泛型编程。即传的传数是
class 类型的,你用的时候自己斟酌下版本问题。
而常用的instanceof(class ..)是指该实例是否属于挂号中的类的父类的一个实例。
如上面的例子:
class A{

}

public class B extends A{
public static void main(String[] args){
Class clazz = B.class;
Class class1 = A.class;
System.out.println(class1.isAssignableFrom(clazz));
if(class1.isAssignableFrom(clazz)){
System.out.println("A是B的父类");
}else{
System.out.println("A不是B的父类");
}
}
}

接口的话也一样的:如下
public interface A {

}

public class B implements A{
public static void main(String[] args) {
Class clazz = B.class;
Class class1 = A.class;
System.out.println(class1.isAssignableFrom(clazz));
if(class1.isAssignableFrom(clazz)){
System.out.println("A是B的父类");
}else{
System.out.println("A不是B的父类");
}
}
}
你测试时只需要把extends A和implements A去掉那就是A不是B的父类或者父接口的情况。 这就是java反射机制的精髓啊
全部回答
public class pass { static int j = 20; public static void main(string argv[]) { int i = 10; pass p = new pass(); p.amethod(i); system.out.println(i); system.out.println(j); } public void amethod(int x) { x = x * 2;//1.x是一个局部变量,只在这个方法内有用 j = j * 2;//2.j是一个全局变量,这里可以直接改变到j system.out.println("x in amethod = "+x);//这里可以证明1. } }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
刘家垭在哪里啊,我有事要去这个地方
丝漫造型工作室怎么去啊,有知道地址的么
亲亲宝贝高端儿童影像生活馆地址在哪,我要去
中天通讯地址有知道的么?有点事想过去
普宁市南径镇民智中学地址好找么,我有些事要
123*345十123*654简便方法
张仲景大药房健康路店我想知道这个在什么地方
有太谷人在交城上班吗?
有人会将Matlab代码转换成c++代码吗?
淄博市张店区南定镇501铁路附近有卖天平的吗
钻山洞我想知道这个在什么地方
沈阳地铁一号线沈阳站去爱儿眼科在哪站下近
在vb.net中怎样取出日期的月和日
我把一个男孩微信冲动的删了,手机也删了。然
维多利亚宴会厅这个地址在什么地方,我要处理
推荐资讯
现在软件开发主要都用的是什么语言
自助充话费机把钱放进去,又被吐出来了为什么
LoL国服第一系列下一期是什么时候出?是哪个
《与朱院思书》先勾勒富春江沿岸"_______"的
天津大道/白万公路桥(路口)地址在哪,我要去
制氧机除尘滤芯多久换一次
一只熊猫的重量是多少千克
百米后程练习
属猴天枰座的寿命是
江苏常州到浙江杜桥这边什么快递比较快一点?
广西中医药大学制药厂这个地址在什么地方,我
中国农业银行皂头分理处怎么去啊,有知道地址
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?