- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个通用基类:
public class BaseLabel<T> extends JXLabel {
private static final long serialVersionUID = 1L;
public BaseLabel() {
System.out.println(T.class.getClass().getName()); //error
}
}
和子类:
public class ChildLabel extends BaseLabel<ChildLabel> {
private static final long serialVersionUID = 2L;
public ChildLabel() {
}
}
我遇到编译错误。
有什么方法可以从 BaseClass 的构造函数中获取实际的类名。在这里,我指的是实际类,我将实例化它。
例如我正在实例化 ChildClass,ChildClass clz = new ChildClass()
;
然后 println()
将打印 package.ChildClass
。
提前致谢。
编译错误为:
cannot select from a type variable System.out.println(T.class.getClass().getSimpleName());
如果我从 abstract BaseClass
的构造函数中调用 this.getClass.getSimpleName()
。它正在打印 ChildClass
。
为什么?
是不是因为我正在实例化 ChildClass
所以 this 指向 ChildClass
的对象。
最佳答案
丑陋?是的
import java.lang.reflect.ParameterizedType;
public class GenericClass<T> {
public GenericClass() {
System.out.println(getClass().getGenericSuperclass()); //output: GenericClass<Foo>
System.out.println(((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[0]); //output: class Foo
}
public static void main(String[] args) {
new ChildClass();
}
}
子类
import java.lang.reflect.ParameterizedType;
public class ChildClass extends GenericClass<Foo> {
public ChildClass() {
System.out.println(((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]); //output: class Foo
}
}
关于java - 通用类 - getClass().getName(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9416968/
我认为Thread对象就像是带有名称和静态Thread.CurrentThread()的抽象对象,就像访问Thread对象的方式一样。显然,这是错误的假设。。是这样的吗?
我认为Thread对象就像是带有名称和静态Thread.CurrentThread()的抽象对象,就像访问Thread对象的方式一样。显然,这是错误的假设。。是这样的吗?
public class SynchThread1 extends Thread { SynchThread1 st; SynchThread1() {} SynchThrea
这是代码: import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import jav
特定 Thread 实例的静态 Thread.currentThread().getName() 和 getName() 之间有什么区别? 最佳答案 不同之处在于 getName() 是一个实例方法,
我有类人: class Person{ private String name; public Person(String name) { this.name = na
我想到了一个Thread对象,就像一些带有名称的抽象和静态Thread.currentThread(),就像访问该Thread对象的方式一样。显然,这是错误的假设。。是这样的吗?
我认为Thread对象就像是带有名称和静态Thread.CurrentThread()的抽象对象,就像访问Thread对象的方式一样。显然,这是错误的假设。。是这样的吗?
如标题所示,这两者如何区分?我们可以肯定地说它们是一样的吗?我们什么时候选择一个而不是另一个是最好的情况?我只是碰巧遇到它,我不太确定。我希望有人能消除我的疑虑。提前致谢。 最佳答案 this.Get
如果我要创建所有类型的类型,而不是使用字符串和原始类型,那么最大的缺点是什么? 通常它看起来像: String name = person.getName(); int age = person.ge
这个问题在这里已经有了答案: Returning a const reference to an object instead of a copy (12 个答案) 关闭 8 年前。 现在,这是高度
假设我有一个名为 Foo 的类的实例 abc。当我调用 abc.getClass().getName() 时,我相信我实际上是在调用 Class"".getName()。所以,我的问题是这与 Foo.
以下代码在一个简单的演示中运行,但在我的实际项目中无法编译。 namespace ConsoleApplication1 { class Program { stati
如果我在 C# 枚举中有重复值,说 enum MyE { value1 = 1, value2 = 2, valued = 1 } 以下字符串的值应该是什么? MyE N = (MyE)1
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界. 这篇CFSDN的博客文章PHP getName()函数讲解由作者收集整理,如果你对这篇文章有兴趣
我想从 Magento 导出自定义 XML feed,这是我使用的以下代码: getCollection(); foreach($_products as $_product) { $_result[
只是因为我懒才这么做。我刚刚编写了一个程序,将我所有的音乐列出到一个 Excel 文件中。 import java.io.*; import org.apache.commons.io.F
我的目标是能够覆盖我从 CustomClass.class.getName() 和 CustomClass.getClass().getName() 返回的内容 它应该返回一个自定义值,我认为最好在像
所以我只是不确定如何使用这个方法。我有一个程序可以打印单词、字符和行的计数,但我还希望它在输出此信息之前说出文件名。我已经查看了这方面的信息,但我不确定如何用我的程序来实现这一点。 package p
这个问题已经有答案了: How do I compare strings in Java? (23 个回答) 已关闭 9 年前。 我已经用几种不同的方法对此进行了测试。我比较的字符串s to 与日志文
我是一名优秀的程序员,十分优秀!