小编Ste*_*han的帖子

如何使用Javassist获取原始类型的类?

在我的程序中,我处理类和原始类型.如果程序找到一个类,它只执行以下调用之一:

  • Class.forName(classname)
  • cc.toClass()在哪里cc是一个实例CtClass

但是,如果它找到原始类型,事情会变得更糟:

  • Class.forName 不可用,它不能与原始类型一起使用.
  • cc.toClass() 回报 null

可以TYPE从原始类型的包装类中调用该字段,但是如何使用反射来完成呢?

这是我的代码:

CtClass cc;//Obtained from caller code
Class<?> classParam;
if (cc.isprimitive()) {
    classParam= ?? // How can I get TYPE field value with reflection ?
} else {
    String nomClasseParam = cc.getName();

    if (nomClasseParam.startsWith("java")) {
        classeParam = Class.forName(nomClasseParam);
    } else {
        classeParam = cc.toClass();
    }
 }
Run Code Online (Sandbox Code Playgroud)

Javassist 3.12.0.GA

编辑: 我已经发布了我在下面的anwsers中选择的解决方案.无论如何,我勾选了汤姆的回答.

java reflection javassist

6
推荐指数
1
解决办法
4962
查看次数

覆盖汽车之家更换应用程序的主页按钮

我一直在努力更换股票的汽车之家应用程序,我完全不知道如何覆盖主页按钮,这样我的应用程序将在手机停靠时返回到前台.这是Car Home的工作方式,所以必须有办法.

似乎BroadcastReceivers不起作用,因为每当按下Home按钮时广播的意图仍然会导致默认的主屏幕应用程序启动; 我无法阻止它.我可以从我的应用程序中覆盖主页按钮,但这对我没有好处,因为当用户在我的应用程序之外时,这需要工作.Car Home也没有做任何奇怪的事情,比如在运行时将自己设置为默认的主屏幕应用程序(我检查了logcat以确保).

在这方面,我一直在撞墙.有没有人有任何想法,或者你能否至少指出我正确的方向?

android dock android-homebutton

5
推荐指数
1
解决办法
6550
查看次数

oracle的查找表解码?

这可能是一个新手问题,但仍然......

我们都熟悉Oracle的解码和案例,例如

select
  decode (state,
          0, 'initial',
          1, 'current',
          2, 'finnal',
          state)
from states_table
Run Code Online (Sandbox Code Playgroud)

或者使用CASE的同类事物.

现在让我们说我有一个具有相同值的表:

state_num | state_desc
        0 | 'initial'
        1 | 'current'
        2 | 'finnal'
Run Code Online (Sandbox Code Playgroud)

有没有办法我可以使用此表作为解码资源进行相同的查询?请注意,我不想联合表来访问其他表中的数据...我只是想知道是否有一些我可以用来做某种事情decode(myField, usingThisLookupTable, thisValueForDefault).

sql oracle decode

5
推荐指数
1
解决办法
9195
查看次数

如何仅使用XSLT去除回车?

我有一个xml代码,可以有两种形式:

表格1

<?xml version="1.0">
<info>
</info>
Run Code Online (Sandbox Code Playgroud)

表格2

<?xml version="1.0">
<info>
  <a href="http://server.com/foo">bar</a>
  <a href="http://server.com/foo">bar</a>
</info>
Run Code Online (Sandbox Code Playgroud)

从循环中我读取每种形式的xml并将其传递给xslt样式表.

XSLT代码

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
    <xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
    <xsl:strip-space elements="*" />

    <xsl:template match="*|@*|text()">
       <xsl:apply-templates select="/info/a"/>
    </xsl:template> 

    <xsl:template match="a">
       <xsl:value-of select="concat(text(), ' ', @href)"/>
       <xsl:text>&#13;</xsl:text>
    </xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

我得到了这个:


bar http://server.com/foo
bar http://server.com/foo

如何使用XSLT删除第一个空行?

xml xslt xpath

5
推荐指数
1
解决办法
9055
查看次数

Java正则表达式中的POSIX字符等价物

我想在Java中使用这样的正则表达式:[[=a=][=e=][=i=]].

但Java不支持POSIX类[=a=], [=e=] etc.

我怎样才能做到这一点?更准确地说,有没有办法不使用US-ASCII?

java regex posix-ere character-properties

5
推荐指数
2
解决办法
6229
查看次数

LOG4J - 在日志中避免两次相同的消息

这是我的log4j.properties档案

# Set loggers' levels
log4j.rootLogger=warn, trace_file

# Appender
log4j.appender.trace_file=org.apache.log4j.RollingFileAppender
log4j.appender.trace_file.Append=true
log4j.appender.trace_file.File=log/myLog.log
log4j.appender.trace_file.MaxFileSize=10MB
log4j.appender.trace_file.MaxBackupIndex=50

# PatternLayout
log4j.appender.trace_file.layout=org.apache.log4j.PatternLayout
log4j.appender.trace_file.layout.ConversionPattern=%d [%p] (%F:%L) %m%n

# Classes
log4j.logger.my_package=info, trace_file
Run Code Online (Sandbox Code Playgroud)

我想要的是 :

  • 存储来自my.packagein的日志请求trace_file至少为INFOlevel
  • 仅存储来自所有其他记录器的日志请求(trace_file如果它至少是WARN水平的)

我的配置不起作用.如果my.package引发级别的日志请求WARN,则此日志请求将被写入两次.如果我使用两个单独的appender,没有问题.

我错过了什么?

java log4j

5
推荐指数
1
解决办法
5876
查看次数

无法访问JD-Eclipse站点:http://java.decompiler.free.fr/?q = jdeclipse

我无法访问java反编译器站点:http://java.decompiler.free.fr/?q = jdeclipse.

它显示403错误:

Erreur 403 - Refus de traitement delarequête(Interdit - Forbidden)**.

我从中国访问它.有没有中国人可以正常使用它?或者是服务器问题?

编辑:
eclipse更新站点托管在jd.benow.ca上.

eclipse decompiler

5
推荐指数
1
解决办法
1万
查看次数

如何在SoapUI中将全局类定义为groovy脚本?

我想在一个groovy脚本中定义一个类,我可以通过SoapUI中的其他groovy脚本重用它.

我想尝试在TestSuite属性中定义我的类,但它不起作用.我想避免在JAR中定义类,因为我们在团队中工作,每个人都必须在他们的SoapUI中导入JAR才能运行我的测试.我使用SoapUI 3.6.1

以下是我的TestSuite的制作方法:

TestSuite
  TestCase
    TestSteps
       Init         (Groovy Script)
       GetResponse1 (Test Request)
       Test1        (Groovy Script)
       GetResponse2 (Test Request)
       Test2        (Groovy Script)
Run Code Online (Sandbox Code Playgroud)

为了简化测试,我在'Test1'中定义了一个类,我想在'Test2'中重用这个类.理想情况下,我会在'Init'中定义该类,并且任何其他groovy脚本都可以访问它.

我怎样才能实现这一目标?

groovy soapui

5
推荐指数
3
解决办法
7181
查看次数

如何忽略Eclipse中特定文件夹中的XML警告?

我正在使用Eclipse和插件m2e构建一个Java项目(它在Eclipse中添加了Maven支持)。

target目录中有一些XML Surefire报告。它们生成烦人的警告,因为它们既没有DTD也没有XML模式。

您如何告诉Eclipse忽略**/target文件夹?

java warnings ignore maven m2e

5
推荐指数
1
解决办法
1706
查看次数

如何使用JPA聚合字符串?

基础数据:

DEPTNO ENAME
------ ------
    20 SMITH
    30 ALLEN
    30 WARD
    20 JONES
    30 MARTIN
    30 BLAKE
    10 CLARK
    20 SCOTT
    10 KING
    30 TURNER
    20 ADAMS
    30 JAMES
    20 FORD
    10 MILLER
Run Code Online (Sandbox Code Playgroud)

期望的输出:

DEPTNO EMPLOYEES
------ ---------
    10 CLARK,KING,MILLER
    20 SMITH,FORD,ADAMS,SCOTT,JONES
    30 ALLEN,BLAKE,MARTIN,TURNER,JAMES,WARD
Run Code Online (Sandbox Code Playgroud)

我尝试过这个 jpql 查询:

 SELECT deptno, new list(ename) as employees
 FROM dept_emp
Run Code Online (Sandbox Code Playgroud)

然而,出现了一个例外:

org.hibernate.hql.internal.ast.QuerySyntaxException:意外标记:第 1 行第 15 列附近的新内容

JPA 2.1
休眠 4.3.1

另请参阅: /sf/answers/1719943221/

java string hibernate jpa aggregate

5
推荐指数
1
解决办法
7044
查看次数