我使用Eclipse Oxygen.2版本(4.7.2)
我尝试了一些lambda表达式并遇到以下问题:
我编写没有类型的lambda参数,Eclipse自动完成工作正常:
但我可以自己写这个并且一切正常:
这是Eclipse中的错误吗?有人可以解释这种行为吗?
我理解错误消息并且知道如何解决它,但我想知道为什么它发生在这个特定的地方,特别是在查找方法上。我为此创建了一个迷你示例。
我有三个实体:
@Entity
data class Animal(
var name: String,
@ManyToOne(cascade = [CascadeType.ALL]) val zoo: Zoo) {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
var id: Int = -1
}
@Entity
data class Zoo(
var city: String,
@OneToMany(cascade = [CascadeType.ALL]) val employee: MutableList<Person>) {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
var id: Int = -1
}
@Entity
data class Person(var age: Int) {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
var id: Int = -1
}
Run Code Online (Sandbox Code Playgroud)
服务:
@Transactional
fun save(name:String, city: String){
repo.findByZooCity(city).ifPresent {
it.zoo.employee.add(Person(22))
}
repo.findByZooCity("OTHER STRING!!!!").ifPresent { …Run Code Online (Sandbox Code Playgroud) 我有一个从 xml 文件中获取输入流的网络服务。现在,我想验证并使用相同的输入流读取它。我使用标记并重置它。
在 Glassfish 和 Websphere 上它工作正常。但是当我使用 openEJB 运行我的集成测试时,流将在验证后关闭。我可以在一个简单的例子中重现它。
我怎样才能更好地意识到它?验证器实现始终相同。但是每个环境都使用输入流的另一种实现。
public class XMLReader {
public static void main(String[] args) {
try {
XMLReader reader = new XMLReader();
InputStream stream = new BufferedInputStream(new FileInputStream(
new File("myXML.xml")));
reader.read(stream);
} catch (Exception e) {
e.printStackTrace();
}
}
public void read(InputStream xmlInputStream) throws SAXException,
IOException {
if (xmlInputStream.markSupported()) {
xmlInputStream.mark(0);
validateXML(xmlInputStream);
xmlInputStream.reset();
readXML(xmlInputStream);
}
}
private void readXML(InputStream xmlInputStream) {
// READ xmInputStream with STAX, JAXB, etc. whatever
}
private void validateXML(InputStream xmlInputStream) …Run Code Online (Sandbox Code Playgroud) java ×2
eclipse ×1
inputstream ×1
java-8 ×1
jpa ×1
kotlin ×1
lambda ×1
spring-boot ×1
transactions ×1
validation ×1
xml ×1
xsd ×1