小编Jhe*_*ico的帖子

如何在Java中将DOM节点从一个文档复制到另一个文档?

我将节点从一个文档复制到另一个文档时遇到了问题.我已经使用了Node的adoptNode和importNode方法但它们不起作用.我也尝试了appendChild但是抛出异常.我正在使用Xerces.这不是在那里实施的吗?还有另一种方法吗?

List<Node> nodesToCopy = ...;
Document newDoc = ...;
for(Node n : nodesToCopy) {
    // this doesn't work
    newDoc.adoptChild(n);
    // neither does this
    //newDoc.importNode(n, true);
}
Run Code Online (Sandbox Code Playgroud)

java api dom copy

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

将glm :: vec4转换为glm :: vec3

如何将a转换glm::vec4glm::vec3

只有x,y,z须─该w组件可以被丢弃.

在GLSL中,可以使用.xyz[1] 来完成,但在glm中,这会导致编译错误:

error: 'glm::vec4' has no member named 'xyz'
Run Code Online (Sandbox Code Playgroud)

[1] http://en.wikibooks.org/wiki/GLSL_Programming/Vector_and_Matrix_Operations#Components

glm-math

16
推荐指数
2
解决办法
3万
查看次数

NamespaceContext并使用带有XPath的命名空间

解析包含Java中的命名空间的xpath似乎需要使用NamespaceContext对象,将前缀映射到命名空间URL,反之亦然.但是,NamespaceContext除了自己实现它之外,我找不到任何其他机制.这似乎违反直觉.

问题:是否有任何简单的方法NamespaceContext从文档中获取,或者创建一个或者失败,完全放弃前缀并指定具有完全限定名称的xpath?

java xml xpath

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

如何在辅助表中的非主键列上连接表?

我有一种情况,我需要在ORM类层次结构中的对象上连接表,其中连接列不是基类的主键.以下是表格设计的示例:

CREATE TABLE APP.FOO
(
    FOO_ID INTEGER NOT NULL,
    TYPE_ID INTEGER NOT NULL,
    PRIMARY KEY( FOO_ID )
)

CREATE TABLE APP.BAR
(
    FOO_ID INTEGER NOT NULL,
    BAR_ID INTEGER NOT NULL,
    PRIMARY KEY( BAR_ID ),
    CONSTRAINT bar_fk FOREIGN KEY( FOO_ID ) REFERENCES APP.FOO( FOO_ID )
)

CREATE TABLE APP.BAR_NAMES
(
    BAR_ID INTEGER NOT NULL,
    BAR_NAME VARCHAR(128) NOT NULL,
    PRIMARY KEY( BAR_ID, BAR_NAME),
    CONSTRAINT bar_names_fk FOREIGN KEY( BAR_ID ) REFERENCES APP.BAR( BAR_ID )
)
Run Code Online (Sandbox Code Playgroud)

这里是映射(为了简洁而消除了吸气剂和固定剂

@Entity
@Table(name = "FOO")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE) …
Run Code Online (Sandbox Code Playgroud)

java orm hibernate

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

为什么后期增量适用于包装类

我正在对一些代码进行审查,并且遇到了一个有人在增加一个成员变量的实例,该成员变量是一个围绕Integer的包装类.我亲自尝试过,真的很惊讶它有效.

Integer x = 0; 
System.out.print(x++ + ", ");
System.out.print(x);
Run Code Online (Sandbox Code Playgroud)

这打印出来0, 1,不像0, 0 我预期的那样.我查看了语言规范,找不到任何涉及此内容的内容.任何人都可以向我解释为什么它可以工作,如果它在多个平台上是安全的?我原本以为这会分解成

Integer x = 0;
int temp1 = x.intValue();
int temp2 = temp1 + 1;
System.out.println(temp1);
temp1 = temp2;
System.out.println(x.intValue());
Run Code Online (Sandbox Code Playgroud)

但显然规范中有些东西会在x = temp1;最后一行之前添加

java immutability post-increment

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

shell脚本中最简单的方法是确保它不以root身份运行?

我有一个从([ba] sh)shell脚本执行的Java应用程序,不幸的是,有时负责部署和启动它的人在启动应用程序之前无法切换到适当的用户.在这种情况下,我希望应用程序至少不运行,并且理想情况下发出警告不要这样做.我想过尝试别名java或更改root的路径以包含一个假的java,但是这可能有不良的副作用,并且由于shell脚本指定了java二进制文件的完整路径,所以不会轻易有效.

那么,在shell脚本中是否存在一个标准习惯用法"如果我是root用户就不要运行"?

java security shell

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

是否有预处理器宏来检测跨平台的C99?

C++有一个__cplusplus预处理器定义,可以让你检测版本.C有什么相似之处吗?

我希望它可以在XCode,GCC和Visual Studio版本中移植.

c macros c99

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

违反一个空的lambda比检查一个潜在的null lambda更好还是更差?

我正在研究Java 8中的小型场景图实现.基本场景节点看起来像这样:

public class SceneNode {
  private final List<SceneNode> children = new ArrayList<>();
  protected Runnable preRender;
  protected Runnable postRender;
  protected Runnable render;

  public final void render() {
    preRender.run();
    render.run();
    for (Renderable child : children) {
      child.render();
    }
    postRender.run();
  }
}
Run Code Online (Sandbox Code Playgroud)

如果Runnables默认为,这工作正常() -> {}.但是,或者我可以允许它们为null,但这意味着该render()方法必须如下所示:

  public final void render() {
    if (null != preRender) { preRender.run(); }
    if (null != render) { render.run(); }
    for (Renderable child : children) {
      child.render();
    }
    if (null != postRender) …
Run Code Online (Sandbox Code Playgroud)

java lambda java-8

10
推荐指数
2
解决办法
5640
查看次数

跨平台方式检测符号链接/连接点?

在java中,可以通过比较文件的规范路径和绝对路径来检测Unix环境中的符号链接.但是,这个技巧在Windows上不起作用.如果我执行

mkdir c:\foo
mklink /j c:\bar
Run Code Online (Sandbox Code Playgroud)

从命令行,然后在java中执行以下行

File f = new File("C:/bar");
System.out.println(f.getAbsolutePath());
System.out.println(f.getCanonicalPath());
Run Code Online (Sandbox Code Playgroud)

输出是

C:\bar
C:\bar
Run Code Online (Sandbox Code Playgroud)

是否有任何pre-Java 7方法可以检测Windows中的连接?

java windows cross-platform

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

我怎样才能学会对数据库性能做出现实的假设?

我主要是一个使用Hibernate的Java开发人员,在我的一些用例中,我的查询执行速度与我的预期相比非常缓慢.我已经与当地的DBA进行了交谈,在很多情况下,由于查询的性质,他们声称性能无法提高.

但是,我有点犹豫要不要听从他们的话.我可以用什么资源来学习什么时候我必须学习它并找到一种不同的方式来获取我想要的信息或学会以速度生活,以及何时可以在DBA上调用废话.

database oracle performance hibernate

7
推荐指数
2
解决办法
1384
查看次数