小编Sot*_*lis的帖子

如何在Java中加载嵌套类?

我有以下java代码:

public class CheckInnerStatic {

private static class Test {
    static {
        System.out.println("Static block initialized");
    }
    public Test () {
        System.out.println("Constructor called");
    }
}

    public static void main (String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
        System.out.println("Inside main");
        Class.forName("Test");    // Doesn't work, gives ClassNotFoundException
        //Test test = new Test();   // Works fine
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么不在class.forName("Test")这里工作,而下一行工作正常?

java static inner-classes

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

如何在夏令时内验证当地日期时间?

Mar 12, 2017 02:39:00 "America/Chicago"不存在.当我将日期和时间设置为此值时,它不会失败.时间设定为Mar 12, 2017 03:39:00一小时后.如何通知此时间不存在.这是时间如何向前跳跃

01:59:59
3:00:00
Run Code Online (Sandbox Code Playgroud)

正如您所见02:39:00,此日期永远不会存在.

这是我正在使用的代码

package com.company;

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;

public class Main {

    public static void main(String[] args) {
        ZoneId zoneId = ZoneId.of("America/Chicago");
        ZonedDateTime dateTimeStart = ZonedDateTime.of(2017, 1, 1, 15, 39, 0, 0, ZoneId.of("America/Chicago"));
        ZonedDateTime dateTimeStartUtc = dateTimeStart.withZoneSameInstant(ZoneOffset.UTC);

        ZoneId zoneIdDst = ZoneId.of("America/Chicago");
        ZonedDateTime dateTimeStartDst = ZonedDateTime.of(2017, 3, 12, 2, 39, 0, 0, ZoneId.of("America/Chicago"));
        ZonedDateTime dateTimeStartUtcDst = dateTimeStart.withZoneSameInstant(ZoneOffset.UTC);
        int y = 90;
    } …
Run Code Online (Sandbox Code Playgroud)

java java-8 java-time

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

将Iterator向前移动到for语句和while语句之间的区别

当我使用对象的Iterator时,我使用while循环(如每本书中学习Java,如Bruce Eckel的Thinking in Java):

Iterator it=...

while(it.hasNext()){
    //...
}
Run Code Online (Sandbox Code Playgroud)

但有时我看到的是有人使用for循环:

Iterator it=...
for (Iterator it=...; it.hasNext();){
    //...
}
Run Code Online (Sandbox Code Playgroud)

我不明白这个选择:

  • 当我有一个带有序数序列的集合(作为数组)或者有一个特殊的步骤规则(通常声明为一个简单的增量)时,我使用for循环counter++.
  • 我在循环结束时使用while循环,我没有这个约束,但只有退出的逻辑条件.

这是一个没有其他原因的样式编码问题,或者存在一些我不知道的其他逻辑(例如性能)?

感谢您的每一个反馈

java iterator for-loop while-loop

14
推荐指数
3
解决办法
4万
查看次数

从jsp访问Spring MVC DI bean

在某些MVC框架中,如果您希望执行某些代码并呈现某些部分视图,则可以从视图中调用控制器操作.我不确定在Spring MVC中执行它的正确方法是什么

我想要一组JSP模板.其中一些将是页面布局,其中一些将是小组件,如分页器,登录框,菜单,标签云等等.这些组件中的每一个都需要一些bean或控制器操作来将一些数据设置到ViewAndModel中,以便视图可以使用它.

问题是我不想在每次调用中设置所有这些对象.我的注册管理员只关心注册处理.所以现在我该怎么做呢?如何从视图中调用DI bean或控制器以准备部分视图?或者我应该创建一些映射?或者我是从完全错误的角度来解决问题的?

templates jsp controller view spring-mvc

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

Hibernate HQL连接提取不是递归提取

我有以下查询和方法

private static final String FIND = "SELECT DISTINCT domain FROM Domain domain LEFT OUTER JOIN FETCH domain.operators LEFT OUTER JOIN FETCH domain.networkCodes WHERE domain.domainId = :domainId";

@Override
public Domain find(Long domainId) {
    Query query = getCurrentSession().createQuery(FIND);
    query.setLong("domainId", domainId);
    return (Domain) query.uniqueResult();
}
Run Code Online (Sandbox Code Playgroud)

Domain作为

@Entity
@Table
public class Domain {
    @Id
    @GenericGenerator(name = "generator", strategy = "increment")
    @GeneratedValue(generator = "generator")
    @Column(name = "domain_id")
    private Long domainId;

    @Column(nullable = false, unique = true)
    @NotNull
    private String name;

    @Column(nullable = …
Run Code Online (Sandbox Code Playgroud)

java hibernate jpa hql

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

@Async和@Transactional:不工作

请参阅代码.

  1. 当我调用方法@Async loadMarkUpPCT()时,数据不会被提交到表中.它表现得好像是非牵引性的.

  2. 当我从loadMarkUpPCT(Class 1)中删除@Async时,即非异步,然后提交数据并按预期正常:transactional)

我期待与@Async和@Transactional有相同的结果,但它不是.请解释或我做错了什么?

编辑:我刚编辑发布代码+日志

流程:AppDataLoaderController调用AppDataLoaderService调用DataMigrationService调用JpaDataMigrationDao

package concepts.web.rest.resource.spring.impl;

@Controller
@RequestMapping("/appdataloader")
public class AppDataLoaderController {

    @RequestMapping("/loadMarkupPct")
    @ResponseStatus(HttpStatus.ACCEPTED)    
    public void loadMarkUpPCT() {
        try {
            this.appDataLoaderService.loadMarkUpPCT();
        } catch (ServiceException e) {
            e.printStackTrace();
        }
    }



package concepts.service.impl;  

@Service("appDataLoaderService")
public class AppDataLoaderServiceImpl implements AppDataLoaderService {

    @Async
    @Override       
    public void loadMarkUpPCT() throws ServiceException {
        logger.debug("@Async loadMarkUpPCT");       
        dataMigrationService.loadMarkUpPCT();
    }   


package concepts.service.impl;

@Service
@Scope("prototype")
public class DataMigrationServiceImpl implements DataMigrationService {

    @Override
    public void loadMarkUpPCT() throws ServiceException {
        // TODO Auto-generated method stub
        Assert.notNull(markUpPCTDataLoader);
        List<MarkUpPCT> markUpPCTs=markUpPCTDataLoader.getMarkupCoef(); …
Run Code Online (Sandbox Code Playgroud)

spring spring-transactions

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

"this"关键字:Java中的工作机制

在学习Java一段时间之后,它第一次使用this关键字让我如此困惑.

这是我如何感到困惑.我写了以下代码:

class BasicInheritanceTest3Base{
    private int x = 0;
    public int y;

    public void a() {
        x++;
        this.x++;
        System.out.println("BasicInheritanceTest3Base.a()");
        b();
        this.b();
        System.out.println(x);
        System.out.println(y);
    }

    public void b(){
        System.out.println("BasicInheritanceTest3Base.b()");
    }
}

public class BasicInheritanceTest3 extends BasicInheritanceTest3Base {
    private int x = 3;
    public int y = 2;

    public void b() {
        System.out.println("BasicInheritanceTest3.b()");
    }

    public static void main(String[] args){
        BasicInheritanceTest3 bit2 = new BasicInheritanceTest3();
        bit2.a();
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

BasicInheritanceTest3Base.a()
BasicInheritanceTest3.b()
BasicInheritanceTest3.b()
2
0
Run Code Online (Sandbox Code Playgroud)

现在第一个问题是:为什么xthis.x指向x基类而不是Child类?如果 …

java this

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

如何修复"在类路径中发现Netty的本地epoll传输,但epoll不可用.使用NIO代替"警告?

我正在使用Cassandra,在启动过程中,Netty会打印一个带有堆栈跟踪的警告:

在类路径中找到Netty的本地epoll传输,但epoll不可用.改用NIO."

应用程序正常工作,但有没有办法解决警告?

这是完整的堆栈跟踪:

16:29:46 WARN  com.datastax.driver.core.NettyUtil - Found Netty's native epoll transport in the classpath, but epoll is not available. Using NIO instead.
java.lang.UnsatisfiedLinkError: no netty-transport-native-epoll in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
    at java.lang.Runtime.loadLibrary0(Runtime.java:870)
    at java.lang.System.loadLibrary(System.java:1122)
    at io.netty.util.internal.NativeLibraryLoader.load(NativeLibraryLoader.java:168)
    at io.netty.channel.epoll.Native.<clinit>(Native.java:49)
    at io.netty.channel.epoll.Epoll.<clinit>(Epoll.java:30)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at com.datastax.driver.core.NettyUtil.<clinit>(NettyUtil.java:68)
    at com.datastax.driver.core.NettyOptions.eventLoopGroup(NettyOptions.java:101)
    at com.datastax.driver.core.Connection$Factory.<init>(Connection.java:709)
    at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1386)
    at com.datastax.driver.core.Cluster.init(Cluster.java:162)
    at com.datastax.driver.core.Cluster.connectAsync(Cluster.java:341)
    at com.datastax.driver.core.Cluster.connect(Cluster.java:286)
    at org.springframework.cassandra.config.CassandraCqlSessionFactoryBean.connect(CassandraCqlSessionFactoryBean.java:100)
    at org.springframework.cassandra.config.CassandraCqlSessionFactoryBean.afterPropertiesSet(CassandraCqlSessionFactoryBean.java:94)
    at org.springframework.data.cassandra.config.CassandraSessionFactoryBean.afterPropertiesSet(CassandraSessionFactoryBean.java:60)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1642)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1579)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) …
Run Code Online (Sandbox Code Playgroud)

java cassandra netty

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

使用Reflection覆盖最终静态字段是否有限制?

我在一些单元测试中遇到了一个奇怪的行为反射最终静态场.以下是说明我的问题的示例.

我有一个基本的Singleton类,它包含一个Integer

public class BasicHolder {
    private static BasicHolder instance = new BasicHolder();

    public static BasicHolder getInstance() {
        return instance;
    }

    private BasicHolder() {
    }

    private final static Integer VALUE = new Integer(0);

    public Integer getVALUE() {
        return VALUE;
    }

}
Run Code Online (Sandbox Code Playgroud)

我的测试用例是循环并设置Reflection the VALUE到迭代索引,然后声明VALUE正确地等于迭代索引.

class TestStaticLimits {
    private static final Integer NB_ITERATION = 10_000;

    @Test
    void testStaticLimit() {

        for (Integer i = 0; i < NB_ITERATION; i++) {
            setStaticFieldValue(BasicHolder.class, "VALUE", i);
            Assertions.assertEquals(i, BasicHolder.getInstance().getVALUE(), "REFLECTION DID NOT WORK for iteration "+i); …
Run Code Online (Sandbox Code Playgroud)

java reflection

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

为什么Arrays.asList(null)抛出NullPointerException而Arrays.asList(someNullVariable)没有抛出异常?

这个小程序

public class Client {
    public static void main(String[] args) throws Exception {
        Arrays.asList(null);
    }
}
Run Code Online (Sandbox Code Playgroud)

抛出一个NullPointerException

Exception in thread "main" java.lang.NullPointerException
    at java.base/java.util.Objects.requireNonNull(Objects.java:221)
    at java.base/java.util.Arrays$ArrayList.<init>(Arrays.java:4322)
    at java.base/java.util.Arrays.asList(Arrays.java:4309)
    at org.example.Client.main(Client.java:10)
Run Code Online (Sandbox Code Playgroud)

但是,该程序

public static void main(String[] args) throws Exception {
    Arrays.asList(returnNull());
}

private static Object returnNull(){
    return null;
}
Run Code Online (Sandbox Code Playgroud)

才不是。他们为什么表现不同?

java variadic-functions

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