小编Kor*_*gen的帖子

Java是否有任何理由对同一类中的重载方法使用后期/静态绑定?

Java是否为重载方法使用早期绑定有什么特定原因?是不是可以使用后期绑定?

例:

public class SomeClass {

    public void doSomething(Integer i) {
        System.out.println("INTEGER");
    }

    public void doSomething(Object o) {
        System.out.println("OBJECT");
    }

    public static void main (String[] args) {
        Object i = new Integer(2);
        Object o = new Object(); 
        SomeClass sc = new SomeClass();
        sc.doSomething(i);
        sc.doSomething(o); 
    } 
}
Run Code Online (Sandbox Code Playgroud)

打印:对象对象

我宁愿期待:INTEGER OBJECT

java polymorphism

16
推荐指数
3
解决办法
3460
查看次数

JPA/Hibernate使用共享主键进行单向一对一映射

我正在努力获得与JPA(提供者:Hibernate)一起使用的单向一对一关系.在我看来,这不应该是一个麻烦,但显然JPA/Hibernate不同意这一点;-)

问题是我必须映射一个我无法更改的遗留模式,并且此模式在两个实体之间使用共享主键,同时它是一个实体的外键.

我创建了一个简单的TestCase:

DB如下所示:

CREATE TABLE PARENT (PARENT_ID Number primary key, Message varchar2(50));

CREATE TABLE CHILD (CHILD_ID Number primary key, Message varchar2(50),
CONSTRAINT FK_PARENT_ID FOREIGN KEY (CHILD_ID )REFERENCES PARENT (PARENT_ID));

CREATE SEQUENCE SEQ_PK_PARENT START WITH 1 INCREMENT BY 1 ORDER;
Run Code Online (Sandbox Code Playgroud)

父母(=一对一的拥有方)看起来如下:

@Entity
@Table(name = "PARENT")
public class Parent implements java.io.Serializable {       
    private Long parentId;
    private String message;
    private Child child;

    @Id
    @Column(name = "PARENT_ID", unique = true, nullable = false, precision = 22, scale = 0)
    @SequenceGenerator(name="pk_sequence", sequenceName="SEQ_PK_PARENT")
    @GeneratedValue(generator="pk_sequence", strategy=GenerationType.SEQUENCE) …
Run Code Online (Sandbox Code Playgroud)

java hibernate jpa one-to-one java-ee

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

将@SessionScoped CDI Bean注入@Stateless EJB

我想将一个sessioncoped CDI bean注入无状态EJB.在EJB的访问时,应该使用sessionscoped cdi bean的正确实例(即调用者的sessionscope中的那个).我知道我可以使用有状态EJB来解决这个问题,但是我真的想知道这是否可以用CDI解决.由于EJB和Servlet在同一个战争中运行,我假设它们共享相同的线程,容器应该能够在EJB中找出正确的sessioncoped bean?

例如:

EJB:

@Stateless
@LocalBean
public class StatelessSessionBean {

    @Inject    
    Instance<SessionData> sessionData;    

    public String testMethod() {
        SessionData bean = sessionData.get();
        String result = "Retrieved bean " + bean + " with UUID "+ bean.uuid + ". Created on: " + new SimpleDateFormat("dd.MM.yyyy HH:mm").format(bean.creationDate);
        return result;
    }
}
Run Code Online (Sandbox Code Playgroud)

CDI Bean:

@SessionScoped
public class SessionData implements Serializable {      

    String uuid;
    Date creationDate;

    public SessionData() {
        uuid = UUID.randomUUID().toString();
        creationDate = new Date();
    }    
}
Run Code Online (Sandbox Code Playgroud)

当我现在从servlet访问无状态EJB时,我希望testMethod使用与调用者的HTTPSession关联的CDI bean.因此,如果来自不同浏览器/ http会话的两个客户端访问Servlet,则它们应该获得不同的结果字符串. …

ejb java-ee cdi weld glassfish-4

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

Alexa Custom Slot Type:意图无价值

我已经将这个问题发布到亚马逊开发者论坛,但没有得到答案.我想Stackoverflow应该是从一开始的第一选择:

根据我的理解,如果我使用自定义槽类型,即使其可能值的列表不包含口语单词,仍然会将口语单词传递给该功能.文档说'自定义插槽类型不等同于枚举.如果口语理解系统认可,列表外的值仍可能被返回.

现在我有一个自定义插槽类型,LIST_OF_PERSONS其中包含值Matthias|Max和值

EmployeeDetailsIntent {Person} 
Run Code Online (Sandbox Code Playgroud)

如果我使用不在LIST_OF_PERSONSIntent中的值调用此意图仍然会被调用,但JSON不包含Slot的"value"键:

"request": {
    "type": "IntentRequest",
    "requestId": "EdwRequestId.a943e233-0713-4ea5-beba-d9287edb6083",
    "locale": "de-DE",
    "timestamp": "2017-03-09T14:38:29Z",
    "intent": {
      "name": "EmployeeDetailsIntent",
      "slots": {
        "Person": {
          "name": "Person"
        }
      }
    }
  }
Run Code Online (Sandbox Code Playgroud)

这是"按设计工作"还是一个错误?我如何访问意图中的口语呢?那this.event.request.intent.slots.Person.value是不确定的?

我的代码位于AWS lambda中,我使用的是nodejs alexa-sdk版本1.0.7.我的技能语言是德语.

alexa alexa-skill alexa-skills-kit alexa-slot

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

angular2 ngModel,其值来自@Input

我正在尝试在我的子组件中使用[(ngModel)],其中一个字符串通过@Input()从我的父组件传递到我的子组件.

然而,双向绑定似乎不起作用.字符串正确地从父项传入,但是当我在子项中编辑它时,父项的值不会更新.

我错过了什么?

家长:

@Component({
  selector: 'my-app',
  template: `
    <div>
      <child [(value)]="name"></child>
      <p>{{name}}</p>
    </div>
  `,
})
export class App {
  name:string = 'MyValue';
  constructor() {

  }
}
Run Code Online (Sandbox Code Playgroud)

儿童

import {Component, Input} from '@angular/core'

@Component({
  selector: 'child',
  template: `
    <div>
    <p>My custom input</p>
      <textarea [(ngModel)]="value"></textarea>
    </div>
  `,
})
export class Child {


  @Input() value:string;

  constructor() {

  }
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个plnkr来说明问题:https://plnkr.co/edit/jCF5kt73P38EFYUAZF6l

typescript angular2-forms angular

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