小编sup*_*sad的帖子

什么时候在java,运行时或编译时加载静态变量?

何时加载静态变量,运行时或编译时?有人可以解释一下吗.

我真的很感激帮助.

谢谢.

java

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

在表上插入或更新违反外键约束

我有两个表:entitytypeproject.以下是create table语句:

Create table project ( 
pname varchar(20) not null, 
primary key(pname)
);

create table entitytype( 
entityname varchar(20) not null, 
toppos char(100), 
leftpos char(100), 
pname varchar(20) not null, 
primary key(entityname), 
foreign key(pname) references project(pname) on delete cascade on update cascade
);
Run Code Online (Sandbox Code Playgroud)

当我尝试将任何值插入entitytype表时,我收到以下错误:

ERROR: insert or update on table "entitytype" violates foreign key constraint "entitytype_pname_fkey"
  Detail: Key (pname)=(494) is not present in table "project".
Run Code Online (Sandbox Code Playgroud)

谁能说清楚我做错了什么?

sql database postgresql

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

为什么类型参数只能出现在使用点分形式的方法调用中?

我在O'Reilly Media撰写的“ Java泛型和集合:加快Java开发过程”一书中遇到了以下声明。

Java语法要求类型参数只能出现在使用点分形式的方法调用中。即使该方法 toList在调用代码的同一类中定义,我们也不能按以下方式将其缩短:

List<Integer> ints = <Integer>toList(); //编译时错误

这是非法的,因为这会混淆解析器。

这是方法的签名: public static <T> List<T> toList(T... arr)

我确实收到了以上代码的参数不匹配错误(无与预期的整数数组)。编译器错误是逻辑上的。但是,在这种情况下,我不了解书中最后一条语句的含义- 这是非法的,因为这会混淆解析器

解析器在哪里变得困惑?这只是简单的签名不匹配,因此不应该被允许。我想念什么吗?

谢谢你的帮助。

java generics variadic-functions

6
推荐指数
0
解决办法
69
查看次数

观察者设计模式

观察者设计模式中,主体通过调用update()每个观察者的操作来通知所有观察者.一种方法是这样做

void notify() {
   for (observer: observers) {
      observer.update(this);
   }
}
Run Code Online (Sandbox Code Playgroud)

但是这里的问题是每个观察者都按顺序更新,观察者的更新操作可能不会被调用,直到更新之前的所有观察者.如果有一个观察者有一个无限循环的更新,那么它之后的所有观察者将永远不会得到通知.

题:

  1. 有办法解决这个问题吗?
  2. 如果是这样,那会是一个很好的例子吗?

java design-patterns observer-pattern

5
推荐指数
3
解决办法
4244
查看次数