小编Nik*_*ris的帖子

测试对象是否是参数类型的实例

有没有办法确定对象是否是泛型类型的实例?

public <T> test(Object obj) {
    if (obj instanceof T) {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

这显然不起作用.还有其他选择吗?就像我想使用Java反射来实例化一个类然后检查以确保它是通用类型T.

java generics instanceof

77
推荐指数
4
解决办法
6万
查看次数

枚举类型的JAXB元素

所以我知道如何创建枚举类型,但是当我为它设置元素类型时,元素字段将只是字符串类型而不是类型枚举.如何在我的模式中创建枚举并让JAXB将其生成为java枚举类型?

这就是我在进行枚举类型和元素创建的方式:

<xsd:simpleType name="myEnum">
    <xsd:restriction base="xsd:string">
        <xsd:enumeration value="MY_ENUM_1"/>
        <xsd:enumeration value="MY_ENUM_2"/>
    </xsd:restriction>
</xsd:simpleType>

<xsd:element name="myEnumElement" type="ns1:myEnum"/>
Run Code Online (Sandbox Code Playgroud)

schema enums types element jaxb

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

使用RPM安装空目录

在我的rpm规范文件的安装部分中,我有一堆mkdir来创建我需要的目录.那些没有安装任何文件的文件最终会被删除,最终不会被创建.如何在完成所有操作后确保创建空目录?

directory install specifications rpm

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

在JavaScript文件中替换Maven Archetype属性

我正在尝试为Java Web应用程序创建一个Maven Archetype,我有一些我希望它生成的JavaScript文件.是否可以在JavaScript文件中使用Maven Archetype属性,以便它将被生成时定义的值替换?

example.js

#set( $symbol_escape = '$' )
var name = "${artifactId}"
Run Code Online (Sandbox Code Playgroud)

以上似乎不起作用.我也试过其他房产.它似乎不受支持.也许是因为与'$'碰撞的可能性?

最终生成的example.js文件只是创建了文本"$ {artifactId}",而不是用属性artifactId的值替换它.

我正在使用Maven Archetype插件/扩展版2.2.

原型-metadata.xml中

...
<fileSet filtered="true" encoding="UTF-8">
  <directory>src/main/javascript</directory>
  <includes>
    <include>**/*.js</include>
  </includes>
</fileSet>
Run Code Online (Sandbox Code Playgroud)

JS路径:src/main/javascript/my/package/name/example.js

javascript properties maven maven-archetype

12
推荐指数
1
解决办法
894
查看次数

任何Java调试技巧,用于查找"打开太多文件"的原因

我正在开发一个Linux环境,系统打算长时间连续运行.经过一夜的测试后,我们看到FileNotFoundException,并显示"Too Many Files Open"消息.我们开始在系统中的不同时间记录lsof命令的输出,看看我们是否能看到发生了什么.我们注意到许多未命名的管道已经打开.所以我认为这些是由于文件流没有关闭.我在源代码中搜索了所使用的任何*Stream对象,并确保它们都在finally {}块中关闭.是否有任何其他我可以搜索的Java对象类型,我可能没有关闭,这会导致所有这些未命名的管道被打开?

另外,我的ulimit是1024,我还搜索了*Writer,并确保这些都关闭了.

java debugging stream filenotfoundexception

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

带有属性的JSF 1.2 JSP 2.0简单自定义标记文件

所以我试图在JSP 2.0的JSF 1.2环境中做一个自定义标记.我最终试图将一个java Object作为一个属性传递给EL,但我收到了一个"org.apache.jasper.JasperException:jsp.error.beans.property.conversion"异常.所以我退了一步,试图让一个简单的自定义标签工作.我成功地打印了你好世界.然后我尝试传递一个简单的String属性并打印出来.这不起作用.该属性不会打印到屏幕上.静态"hello world"文本不是属性.

WEB-INF /标签/ helloworld.tag:

<?xml version="1.0" encoding="UTF-8"?>
<jsp:root version="2.0" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:ui="http://www.sun.com/web/ui" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html">
  <jsp:directive.attribute name="message" required="true"/>
  <ui:staticText id="asdf" text="hello world: #{message}"/>
</jsp:root>
Run Code Online (Sandbox Code Playgroud)

然后MyBean.jsp定义标记名称空间:xmlns:tags ="urn:jsptagdir:/ WEB-INF/tags"然后调用标记,如下所示:

<tags:helloworld message="Test message"/>
Run Code Online (Sandbox Code Playgroud)

我正在使用jboss 4.0.4来部署war文件.

tags jsf attributes jsp file

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

您应该为应用程序用户使用AWS IAM角色和权限吗?

我是第一次在AWS上开发nodejs应用程序,但仍在学习所有服务。我正在研究应用程序的身份验证和授权,并正在创建用户角色和组。AWS IAM服务既适用于AWS管理又适用于您应用程序的用户授权,还是我应该使用nodejs的ACL模块之一,并在AWS IAM服务之外管理我的角色和用户?

amazon-web-services node.js amazon-iam aws-sdk

4
推荐指数
2
解决办法
1446
查看次数

Java类泛型和方法泛型冲突

我有一个Generic Class Factory类,它有两个方法,一个使用Class泛型T值,另一个只使用自己的方法泛型定义.

public class GenericClassFactory<T extends ClassMatchable> {
    public <E, K> E newObject(ClassMatcher<E, K> matcher, K key, String packageName){...}
    public <K> T newObject(K key, String packageName){...}
}
Run Code Online (Sandbox Code Playgroud)

使用T通用的方法工作正常,但是当我想使用其他不关心T泛型的方法时,它将不会使用Generic E它只返回一个Object然后我必须输入它.

Data data = new GenericClassFactory().newObject(new ClassMatcher<Data, String>(){...}, "key1", "my.package.name.impl");
Run Code Online (Sandbox Code Playgroud)

这有编译错误,因为它要我将其类型转换为(Data).如果我将GenericClassFactory传递给一个有效的Class Generic它将会起作用.如果您定义了Class Generic但未使用它,则它无法识别方法泛型.

Data data = new GenericClassFactory<ClassMatchable>().newObject(new ClassMatcher<Data, String>(){...}, "key1", "my.package.name.impl");
Run Code Online (Sandbox Code Playgroud)

这很好.但是,当我的目的不需要时,我必须定义一个类泛型,这是愚蠢的.我能做到这一点:

public class GenericClassFactory {
    public <E, K> E newObject(ClassMatcher<E, K> matcher, K key, String packageName){...}
    public <T extends ClassMatchable, K> T newObject(K key, String packageName){...}
}
Run Code Online (Sandbox Code Playgroud)

但是现在我的第二种方法似乎太宽泛或者某种东西......也许不是.我的意思是,如果要分配给返回类型的对象未实现ClassMatchable,它仍会产生编译错误.那是我应该去的方式吗?这样我就不必进行类型转换?

java generics methods class return-type

2
推荐指数
1
解决办法
1029
查看次数

如何在没有ruby的情况下列出init.d脚本的文件

我需要转换使用ruby的init.d脚本不使用ruby.我可以使用perl或python或其他东西,但我不能使用ruby.我的主要问题是弄清楚如何动态获取目录中的*.jar文件列表并用':'分隔它们.剩下的我可以用bash脚本轻松完成.

这是我正在使用的Ruby代码:

#!/usr/local/bin/ruby

require 'fileutils'

HOME = '/usr/local/myproject'
JAVA_HOME = '/usr/java/jdk'
JARS = Dir.glob(File.join(HOME, 'lib', '*.jar')).join(':')
PID_FILE = '/var/run/myproject.pid'
OUT_FILE = File.join(HOME, "stdout")
ERR_FILE = File.join(HOME, "stderr")

case ARGV.first
when 'start'
  exec "/usr/local/bin/jsvc -home #{JAVA_HOME} -cp #{JARS} -pidfile #{PID_FILE} -DHOME=#{HOME} -user me -outfile #{OUT_FILE} -errfile #{ERR_FILE} mypackage.MyProject"
when 'stop'
  exec "/usr/local/bin/jsvc -home #{JAVA_HOME} -cp #{JARS} -pidfile #{PID_FILE} -stop mypackage.MyProject"
end
Run Code Online (Sandbox Code Playgroud)

ruby directory perl list init.d

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