我有以下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")这里工作,而下一行工作正常?
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) 当我使用对象的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)
我不明白这个选择:
counter++.这是一个没有其他原因的样式编码问题,或者存在一些我不知道的其他逻辑(例如性能)?
感谢您的每一个反馈
在某些MVC框架中,如果您希望执行某些代码并呈现某些部分视图,则可以从视图中调用控制器操作.我不确定在Spring MVC中执行它的正确方法是什么
我想要一组JSP模板.其中一些将是页面布局,其中一些将是小组件,如分页器,登录框,菜单,标签云等等.这些组件中的每一个都需要一些bean或控制器操作来将一些数据设置到ViewAndModel中,以便视图可以使用它.
问题是我不想在每次调用中设置所有这些对象.我的注册管理员只关心注册处理.所以现在我该怎么做呢?如何从视图中调用DI bean或控制器以准备部分视图?或者我应该创建一些映射?或者我是从完全错误的角度来解决问题的?
我有以下查询和方法
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) 请参阅代码.
当我调用方法@Async loadMarkUpPCT()时,数据不会被提交到表中.它表现得好像是非牵引性的.
当我从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) 在学习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)
现在第一个问题是:为什么x并this.x指向x基类而不是Child类?如果 …
我正在使用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) 我在一些单元测试中遇到了一个奇怪的行为反射最终静态场.以下是说明我的问题的示例.
我有一个基本的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) 这个小程序
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 ×8
cassandra ×1
controller ×1
for-loop ×1
hibernate ×1
hql ×1
iterator ×1
java-8 ×1
java-time ×1
jpa ×1
jsp ×1
netty ×1
reflection ×1
spring ×1
spring-mvc ×1
static ×1
templates ×1
this ×1
view ×1
while-loop ×1