我是 Java 开发的新手,想在 Java 中使用等效的 LINQ。搜索了很多网站,发现linq4j似乎不错。我使用提供的 maven 依赖项尝试了示例程序。但是我得到了依赖解决错误
'未能找到 net.hydromatic:linq4j:jar:0.1.13'。
任何人都可以帮助我,我该如何解决这个错误并使用 linq4j。
提供一步一步(连同 pom 更改)的示例将更有用。
提前致谢,
基兰
我是 Java 开发的新手,想在 Java 中使用等效的 LINQ。搜索了很多网站,发现linq4j似乎不错。我使用提供的 maven 依赖项尝试了示例程序。但是我得到了依赖解决错误
'未能找到 net.hydromatic:linq4j:jar:0.1.13'。
任何人都可以帮助我,我该如何解决这个错误并使用 linq4j。
提供一步一步(连同 pom 更改)的示例将更有用。
提前致谢,
基兰
Linq4j 可在http://conjars.org maven 存储库中预先构建。将以下部分添加到您的 pom.xml:
<dependencies>
...
<dependency>
<groupId>net.hydromatic</groupId>
<artifactId>linq4j</artifactId>
<version>0.1.13</version>
</dependency>
</dependencies>
和
<repositories>
...
<repository>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<id>conjars</id>
<name>Conjars</name>
<url>http://conjars.org/repo</url>
<layout>default</layout>
</repository>
</repositories>
然后您应该能够在您的 Java 应用程序中使用 linq4j 类。例如:
package com.example;
import net.hydromatic.linq4j.Linq4j;
import net.hydromatic.linq4j.function.*;
public class Linq4jExample {
public static class Employee {
public final int empno;
public final String name;
public final int deptno;
public Employee(int empno, String name, int deptno) {
this.empno = empno;
this.name = name;
this.deptno = deptno;
}
public String toString() {
return "Employee(name: " + name + ", deptno:" + deptno + ")";
}
}
public static final Employee[] emps = {
new Employee(100, "Fred", 10),
new Employee(110, "Bill", 30),
new Employee(120, "Eric", 10),
new Employee(130, "Janet", 10),
};
public static final Function1<Employee, Integer> EMP_DEPTNO_SELECTOR =
new Function1<Employee, Integer>() {
public Integer apply(Employee employee) {
return employee.deptno;
}
};
public static void main(String[] args) {
String s = Linq4j.asEnumerable(emps)
.groupBy(
EMP_DEPTNO_SELECTOR,
new Function0<String>() {
public String apply() {
return null;
}
},
new Function2<String, Employee, String>() {
public String apply(String v1, Employee e0) {
return v1 == null ? e0.name : (v1 + "+" + e0.name);
}
},
new Function2<Integer, String, String>() {
public String apply(Integer v1, String v2) {
return v1 + ": " + v2;
}
})
.orderBy(Functions.<String>identitySelector())
.toList()
.toString();
assert s.equals("[10: Fred+Eric+Janet, 30: Bill]");
}
}