Java 获取接口的名称;“浮动点”;而不是要扩展的类名“;“数据类型A”;
我是java新手,这里有一个小问题,其中定义了以下类:Java 获取接口的名称;“浮动点”;而不是要扩展的类名“;“数据类型A”;,java,oop,interface,Java,Oop,Interface,我是java新手,这里有一个小问题,其中定义了以下类: public interface FloatingPoint extends DataTypeA { , 及 当我使用以下行时: for (int i = 0, size = MetaObject.getEAllReferences().size(); i < size; ++i) { EReference Reference = MetaObject.getEAllReferences().get(i); if
public interface FloatingPoint extends DataTypeA {
,
及
当我使用以下行时:
for (int i = 0, size = MetaObject.getEAllReferences().size(); i < size; ++i)
{
EReference Reference = MetaObject.getEAllReferences().get(i);
if (Reference.isContainment()){
if (Reference.getEType() instanceof EClass) {
EClass ContainedClass = (EClass) Reference.getEType();
String ClassName = ContainedClass.getName();
System.out.println(ClassName);
for(int i=0,size=MetaObject.getEAllReferences().size();i
我得到了“DataTypeA”,但我希望接口本身的名称为“FloatingPoint”
有人知道如何解决这样的问题吗!!你可以使用
java.lang.Class#getInterfaces
它确定类或接口实现的接口
由此对象表示。如果此对象表示类
返回值是一个数组,其中包含表示所有
类实现的接口。接口的顺序
数组中的对象对应于接口名称的顺序
在所表示类的声明的implements子句中
通过这个物体
例如:
ArrayList<String> s = new ArrayList<>();
Class<?>[] interfaces = s.getClass().getInterfaces();
Arrays.stream(interfaces).map(e -> e.getName()).forEach(System.out::println);
这里扩展/实现了哪些类或接口ArrayList
public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable
公共类ArrayList扩展了AbstractList
实现列表、随机访问、可克隆、java.io.Serializable
继承的类在Java中称为“super”
myClass.super将获得您扩展的类,因此我相信您可以选择ContainedClass.super.getName();-但我必须确保使用少量代码;)什么是
EClass
,Reference
,ContainedClass
,EOObject
?您尝试调用getEReferenceType()两次了吗
?还请描述您想要获得什么。例如,“我想要获得接口的名称…”。EClass是针对ECore语言的,因为我使用emf。Reference是对象的包含引用,我使用它来获取包含的类名引用。GetType().getName();我认为@lexicore需要更多的信息。myClass.super
或ContainedClass.super.getName()
是无效的java语法
ArrayList<String> s = new ArrayList<>();
Class<?>[] interfaces = s.getClass().getInterfaces();
Arrays.stream(interfaces).map(e -> e.getName()).forEach(System.out::println);
java.util.List
java.util.RandomAccess
java.lang.Cloneable
java.io.Serializable
public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable