小编Boz*_*zho的帖子

如果我们有原始列表,为什么我们可以更改不可修改的列表?

通过查看的代码Collections类,我才知道,当我们正在使用的方法unmodifiableList(List list)或者unmodifiableCollection(Collection c)它不是创建一个新的对象,但它返回同一个对象的引用,并覆盖其可以修改方法List[ add,addall,remove,retainAll. ..]
所以我跑了这个测试:

List modifiableList = new ArrayList();
modifiableList.add ( 1 );   
List unmodifiableList = Collections.unmodifiableList( modifiableList );
// unmodifiableList.add(3);  // it will throw the exception 
modifiableList.add ( 2 );       
System.out.println( unmodifiableList );
Run Code Online (Sandbox Code Playgroud)

结果是[ 1,2 ].
现在重点是为什么它指的是同一个对象?为什么不创建新对象?

java collections

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

Java的; 在帧之前获得插入是可见的

假设一个普通的JFrame,我试图在框架可见之前获取插入值.一旦框架可见,我就可以得到这些值(我想我可以在屏幕外创建jframe),但是想知道是否有某种方法可以让Java在可见性之前设置插图.在此调用之前,所有插入值均为零.

Net,我正在尝试获取框架客户区的确切尺寸 - 或者说更好,我正在尝试创建一个具有非常特定的客户区尺寸的JFrame.

提前致谢.

java swing jframe

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

DDD实体及其标识符

我的系统中有一个实体,它自然需要一个标识符,以便可以唯一标识.假设数据库用于使用Hibernate生成标识符,使用本机策略,那么显然应用程序代码没有分配标识符的可靠性.现在,该实体的实例在被持久化并获取其标识符之前是否可以被认为是有效的?或者我应该使用其他策略为我的实体分配其标识符,以便在调用其构造函数时获取其标识符?

java domain-driven-design hibernate

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

如何控制显示JSP中的数字位数?

我想问一个关于JSP和Java的问题.我正在编写JSP页面并且有一个bean类.在类中,我有一个getter函数,它将在jsp页面中返回一个double var.我使用以下代码显示数字.

<p> the value of AB is <%=obj.getValue() %> <p>
Run Code Online (Sandbox Code Playgroud)

我希望显示器会如下所示

the value of AB is 0.45
Run Code Online (Sandbox Code Playgroud)

但是,真正的显示如下

the value of AB is 0.4569877987
Run Code Online (Sandbox Code Playgroud)

我只想显示最后两位数.我该怎么做才能展示我想要的东西.我应该修改JSP页面还是Java类变量?谢谢.

java jsp

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

JSP/servlet从属性文件中读取参数?

我的JSP页面需要根据它们所处的环境(开发,生产,沙箱等)显示不同的信息.我希望每个环境都有一个属性文件,其中包含它们可能需要的所有参数.如何在JSP页面中引用此文件的属性?

我的想法是:

  • 让servlet以模型对象的形式将属性提供给所有JSP页面,以便我可以像$ {properties.propertyName}一样引用它们.
  • 以某种方式在web.xml中引用此属性文件,然后我可能调用类似$ {context.properties.propertyName}的东西?
  • 而不是属性文件,列出web.xml中的参数并引用JSP页面中的参数.不知道怎么做,但我更喜欢一个更简单的属性文件.

更新 - 我应该提到我使用的是Spring 3.0和Spring webmvc.所以,如果有一些最好的实践方法,使用Spring做到这一点,这是理想的!

spring jsp servlets jsp-tags spring-mvc

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

Spring @Scheduled注入延迟时间

我有一些注释的方法

@Scheduled(fixedDelay = 6000)
private void myScheduledMethod(){
//do something
}
Run Code Online (Sandbox Code Playgroud)

我还有一组属性文件,我在其中配置特定于环境的值.出于测试目的,我希望可以配置延迟的值,理想情况是通过属性文件中的属性.

由于值fixedDelay必须是常量,我正在寻找一种从属性文件中获取此集的方法,但还没有找到方法.

java spring quartz-scheduler

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

在调用save()之前必须手动分配此类的ID

我有一些hibernate @OneToMany映射的问题.就像这里一样

@Entity
@Table(name = "albums")
@SequenceGenerator(name = "ALBUMS_SEQ", sequenceName = "albums_seq", allocationSize = 1)
public class AlbumDs {

    @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ALBUMS_SEQ")
    private Integer id;
    private Integer ownerId;
    private String name;
    private String description;
    private Date created;
    @OneToMany(cascade = CascadeType.ALL) 
    @JoinColumn(name = "albumId", insertable = true, updatable = true)
    private Set<UserAlbumDs> users = new HashSet<UserAlbumDs>();

    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getOwnerId() { …
Run Code Online (Sandbox Code Playgroud)

hibernate jpa one-to-many

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

<c:import url ="child.jsp"/>和<jsp:include ...>之间的性能差异

我知道以下两者之间的性能差异

  1. Include指令(<%@ include file="test.jsp" %>):这包括编译阶段文件的内容 - 即页面转换为servlet时的内容.

  2. 包含action(<jsp:include page="test.jsp" flush="true" />):这包括运行时文件的内容 - 即用户请求页面时的内容.

但是JSTL标签<c:import url="child.jsp" /> 是在编译阶段或运行时包含的内容呢?

谢谢!

java jsp jstl

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

Spring的@Cacheable注释是否与注释方法的bean具有相同的范围?

是否有一种简单的方法可以将Spring的@Cacheable注释与非单例(例如会话范围的)bean一起使用,并且缓存与所述bean具有相同的范围?

例:

import javax.inject.Inject;
import javax.inject.Named;

import org.springframework.cache.annotation.Cacheable;
import org.springframework.context.annotation.Scope;
import org.springframework.security.core.context.SecurityContextHolder;

@Named
@Scope("session")
public class UserNameRetriever {

    @Inject private UserDao userDao;

    @Cacheable("userName")
    public String getUserName() {
        return userDao.getUserByLogin((String)SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getName();
    }

}
Run Code Online (Sandbox Code Playgroud)

理想情况下,UserNameRetriever.getUserName()会从UserDao每个会话中获取一次用户名,但此代码实际上会缓存应用程序范围内的用户名.

java spring

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

如何使用ctrl + space在Eclipse中插入System.out.println()

当我观看有关java的视频时,一名男子System.out.println()立即插入屏幕.我该怎么做.他只写"S"字符......

java eclipse

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