小编Luc*_*cas的帖子

传递整个对象与传递对象的属性

我正在考虑我的应用程序的解决方案.这里的情况:我有一类是需要对象A作为输入参数,并调用几个小方法,这些方法中的每一个方法需要对象A的某些部分(它们不重叠,即method1()需求ObjectA.field1ObjectA.field2,method2()需求ObjectA.field3等...)现在的问题是:鉴于一般良好的代码实践和性能,最好将ObjectA传递给这些方法中的每一个,这样它们就可以自己提取所需的值,或者更好的只是传递它们的值?我的意思是:

method1(ObjectA);
method2(ObjectA);
Run Code Online (Sandbox Code Playgroud)

要么

method1(Object1.getField1(), ObjectA.getField2());
method2(ObjectA.getField3());
Run Code Online (Sandbox Code Playgroud)

谢谢你的回答!

java oop performance

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

如何将LinkedHashMap转换为Custom java对象?

我试图通过RESTful WS将数据从一个应用程序传送到另一个应用程序并且它可以工作,但我不能使用这些数据,因为我无法投射它... WS返回一个像这样的对象列表:

{id=1, forename=John, surname=Bloggs, username=jbloggs, role=Graduate Developer, office=London, skills=[{technology=Java, experience=2.5}, {technology=Web, experience=2.0}, {technology=iOS, experience=0.0}, {technology=.NET, experience=0.0}]}
Run Code Online (Sandbox Code Playgroud)

让我使用Jackson的ObjectMapper:

ObjectMapper mapper = new ObjectMapper();

    List<ConsultantDto> list = new ArrayList<ConsultantDto>();


    try {

        list = mapper.readValue(con.getInputStream(), ArrayList.class);

    } catch (JsonGenerationException e) {

        e.printStackTrace();

    } catch (JsonMappingException e) {

        e.printStackTrace();

    } catch (IOException e) {

        e.printStackTrace();

    }
Run Code Online (Sandbox Code Playgroud)

之后我有3行代码:

System.out.println(list.get(0));
System.out.println(list.get(0).getForename());
return list;
Run Code Online (Sandbox Code Playgroud)

返回,因为此方法的返回值被传递给在浏览器中显示正确数据的其他Web服务.有趣的事情发生在两条打印行中,一条打印来自此帖子顶部的数据({id:1 ...}),另一条打印异常:

java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.xxx.xxx.web.dto.rp.ConsultantDto
Run Code Online (Sandbox Code Playgroud)

ConsultantDto和SkillDto是两个合法的类,它们的所有属性都设置为匹配来自WS的数据,所有的getter/setter都已到位.就我而言,LinkedHashMap将东西存储为键:值对,所以我只是看不到这个异常的来源.我如何解决它,为什么ObjectMapper只是正确解析值(当我得到一个ConsultantDto而不是List时它会这样做)?

java json web-services

22
推荐指数
2
解决办法
6万
查看次数

maven attach-artifact - 保留原始名称

我使用build-helper-maven-pluginattach-artifact目标添加自定义的jar文件的Nexus,旁边的EAR文件。构建完成后,jar 文件就在那里,但没有保留它的原始名称,而是将其重命名为<project_name>-ear-<version>-<timestamp>.jar. 我能做些什么来保留它的原始名称,即配置 Maven 以保留该名称?

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.9.1</version>
    <executions>
        <execution>
            <id>attach-artifacts</id>
            <phase>package</phase>
            <goals>
                <goal>attach-artifact</goal>
            </goals>
            <configuration>
                <artifacts>
                    <artifact>
                        <file>../xxx/src/main/resources/lib/DbSynchronizer.jar</file>
                        <type>jar</type>
                    </artifact>
                </artifacts>
            </configuration>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

java nexus maven

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

对于 Java 泛型而言,向后兼容性究竟意味着什么?

Generic type information is not available at runtime in Java for backwards compatibility reasons.

兼容性原因在这里到底意味着什么?另外,在某些情况下通用类型信息是否可用,或者总是不可用,除了向后兼容性之外还有其他原因吗?

我对此有一些了解,但如果有人愿意回答这个问题,我想最终了解它。我读过几篇文章和一些 Oracle 文档,但它们并没有关注我在这里试图解决的问题。

java generics

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

如果只从db获取数据,我是否需要实体?

希望简单的问题:

  • 如果我有一个应该只从数据库中获取数据的应用程序(它不会持久存在)?
  • 我是否需要由@ Entity-annotated类集合提供的精确db结构?
  • 我还需要实体吗?
  • 或者我可以只使用DAO并执行以下操作:

    ObjectFromDb ob = dao.find(someProperty);

    鉴于ObjectFromDb只是一个没有单个JPA注释的常规POJO?

我把它谷歌了一会儿,但它似乎是太具体的问题......
感谢任何建议!

java dao jpa relational-database

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

对泛型有点混乱

我开始阅读一些关于Java中泛型的文章,有一件事让我困惑:

public static <t> T getFirst(List<T> list)
Run Code Online (Sandbox Code Playgroud)

"此方法将接受对List的引用,并将返回T类型的对象."

很酷,但做<t>什么(小写一个,静态后)?我试过但没能理解它......

java generics

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

使用带有非空白正则表达式的String split()方法

我试图弄清楚它是如何工作的,我尝试了几个不同的例子,我只是不理解我得到的结果.fot示例在字符串上使用它,例如:

String s1 = "Hello there how are you";
String [] sa1 = s1.split("\\s");
Run Code Online (Sandbox Code Playgroud)

将返回带有5个明显元素的数组,这对我来说很有意义.这个怎么样:

String s1 = "Hello there how are you";
String [] sa1 = s1.split("\\S");
Run Code Online (Sandbox Code Playgroud)

返回17个空字符串的数组...有人可以帮我理解吗?

java regex string

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