草庐IT

java - 代理的原始类名(没有手动字符串操作)

在Java中,如何获取JavaEE(CDI)代理的原始类对象和/或类名?在代理实例上使用getName()时,返回的名称类似于com.company.employeemgmt.EmployeeManager$Proxy$_$$_WeldSubclassJavaSE(7)或EE(6)中是否有一些功能可以返回原始的、未代理的类实例或其名称?我需要:com.company.employeemgmt.EmployeeManager当然,我可以简单地使用字符串操作,但我想知道这种功能是否已经内置在Java-(EE)中。我已经找到了java.reflect.Proxy,我可以用它来检测代理:pub

java - 如何指定单个测试由 play framework 的 "test-only"命令运行

很明显,人们希望将单个测试作为参数传递给test-only,这样您就可以按照文档中的说明进行操作:运行一个测试。但是你是怎么做到的呢?在Java中,您可能有一个UserTest类,它扩展了WithApplication并在User模型上定义了一堆测试(每个测试都使用@Test)。你想说test-onlymodels.UserTest.createAUser但只有测试会告诉你[info]Passed:Total0,Failed0,Errors0,Passed0[info]Noteststorunfortest:testOnly[success]Totaltime:0s那么如何只运行一个测

java - LogManager.getLogger() 无法确定 Java 11 上的类名

这个问题在这里已经有了答案:Islog4j2compatiblewithJava11?(5个答案)关闭去年。我在Java11中使用log4j2(2.11.1)并尝试使用以下方法获取Logger对象:privatestaticfinalLoggerLOG=LogManager.getLogger();(从org.apache.logging.log4j中的log4j-api导入)在运行时,我收到以下错误:WARNING:sun.reflect.Reflection.getCallerClassisnotsupported.Thiswillimpactperformance.Excepti

java - 没有任何类名的 NoClassDefFoundError

我正在尝试从ant运行java任务。我正在尝试运行“org.apache.tools.ant.launch.Launcher”类。我不断收到“NoClassDefFoundError”,但没有指定任何类名。我还收到“ClassNotFoundException”以及显示消息“找不到主类:.程序将退出”的消息。这是错误的片段[java]Exceptioninthread"main"java.lang.NoClassDefFoundError:[java]Causedby:java.lang.ClassNotFoundException:[java]atjava.net.URLClassL

c++ - 为什么会有注入(inject)的类名?

最近,我看到了一个奇怪的C++特性:注入(inject)类名。classX{};Xx1;classX::Xx2;//classX::XisequaltoXclassX::X::Xx3;//...andsoon...但我不明白为什么需要此功能。是否有任何实践需要此功能?而且我听说旧C++中不存在此功能。那么,它是什么时候推出的呢?C++03?C++11? 最佳答案 注入(inject)的类名表示X被声明为X的成员,所以里面的名字查找X总是找到当前类,而不是另一个X可能在相同的封闭范围内声明,例如voidX(){}classX{publ

c++ - 使用继承函数打印派生类的类名

有没有什么方法可以在不覆盖派生类中的函数的情况下打印具有继承函数的派生类的类名?classA{public:virtualvoidprint(){printf("%s",__PRETTY_FUNCTION__);}};classB:publicA{};intmain(){Bb;b.print()//shouldyield"B::print()"butyields"A::print()"}我要求这样我就可以在重写的函数中调用A::print()来打印与父类相关的属性,但包括当前类名。 最佳答案 __PRETTY_FUNCTION__创

c++ - 将类名插入容器

我有几个派生自QWidget的类我也有这样的模板函数templateQWidget*create(){returnstatic_cast(newT());}现在我要创建容器:QMapclasses//itisnotcompiling因此,我可以将容器值用作函数模板类型:QWidget*widget=create();我应该怎么做? 最佳答案 类不是C++中的一流对象(即它们不是可以传递或存储在容器中的数据)。有一些东西与类“名称”相似,但实际上您不能保证它是一个可读的名称,并且无论如何您都不能创建给定该名称的实例。你可以做的是制作一

c++ - Doxygen 和长类名

我有一个很好的C++项目,其中广泛使用了模板编程,但这真的不是重点。关键是我的一些类名(带有所有模板参数)变得很长。我将Doxygen用于文档。这通常不是问题,但最近我注意到类列表不可读,因为长类名使其太宽而无法显示在屏幕上。有没有办法让Doxygen将类列表中的类名分成更多行?有没有办法在保留通用模板类的同时从类列表中隐藏模板类的特化?有更好的解决方案吗?我设法通过将类隐藏在命名空间中然后立即将此命名空间导入全局命名空间来找到一个愚蠢的解决方法,这样这些类的名称就不会出现在列表中,除非单击或细节水平增加。明显的缺点是这些类(class)现在没有出现在列表中(其中一些相当重要,我希望它

c++ - 私有(private)继承,返回对基类静态成员的引用

我有一个简单的问题,关于从一个私有(private)继承基类的类继承,即我们有classBase{};classHeir:privateBase{};classHeirsHeir:publicHeir{};了解HeirsHeir无法访问“其”Base的任何内容。特别是,它不能有返回对自身的Base&引用的方法。但为什么它不能返回对另一个Base对象的引用?那么为什么下面的代码不能编译:classBase{};classKid:privateBase{};Baseinstance;classGrandkid:publicKid{constBase&GetInstance()const{r

c++ - 类名关联

$3.5-"Inaddition,amemberfunction,staticdatamember,classorenumerationofclassscopehasexternallinkageifthenameoftheclasshasexternallinkage."关于“如果类的名称具有外部链接”是什么意思的任何输入?与在命名空间范围内定义的类和使用静态说明符定义的命名空间范围类(具有内部链接???)相比,“本地类”(可能没有任何链接)是否有提示? 最佳答案 本地类(但不一定是嵌套类)没有链接。不能使用静态说明符定义类。所以