我有添加,更新和删除实体的通用方法.但我也想使用泛型来检索数据.
这是我获取数据的方法:
public static List<ClassA> getAllClassAData() {
Session session = HibernateUtil.getSessionFactory().openSession();
Criteria criteria = session.createCriteria(ClassA.class);
return criteria.list();
}
public static List<ClassB> getAllClassBData() {
Session session = HibernateUtil.getSessionFactory().openSession();
Criteria criteria = session.createCriteria(ClassB.class);
return criteria.list();
}
public static List<ClassC> getAllClassCData() {
Session session = HibernateUtil.getSessionFactory().openSession();
Criteria criteria = session.createCriteria(ClassC.class);
return criteria.list();
}
Run Code Online (Sandbox Code Playgroud)
我试着做这样的事情:
public static <T> List<T> getAllData() {
Session session = HibernateUtil.getSessionFactory().openSession();
Criteria criteria = session.createCriteria(???.class); //Here is where I'm stuck
return criteria.list();
}
Run Code Online (Sandbox Code Playgroud)
我坚持将类作为arg传递给标准创建:
Criteria criteria = session.createCriteria(Generic.class);
Run Code Online (Sandbox Code Playgroud)
如何让JVM知道我在标准创建过程中想要传递的类?
我在我的代码中遇到私有LinkedList股票的错误.
错误表明我有一个非法的表达开始,可能是私人的?如何更改此以消除错误?如果我将其更改为,我会得到完全相同的错误public.我stockItem班上的所有东西也都被设定了public.
任何帮助将非常感激
import java.util.*;
public class StockList {
{
private LinkedList<StockItem> stock
= new LinkedList<StockItem>();
public StockList() {};
Run Code Online (Sandbox Code Playgroud)
谢谢.
我创建了这个用于读取Linux正常运行时间的简单示例:
public String getMachineUptime() throws IOException {
String[] dic = readData().split(" ");
long s = (long) Array.get(dic, 1);
return calculateTime(s);
}
private String readData() throws IOException {
byte[] fileBytes;
File myFile = new File("/proc/uptime");
if (myFile.exists()) {
try {
fileBytes = Files.readAllBytes(myFile.toPath());
} catch (java.nio.file.AccessDeniedException e) {
return null;
}
if (fileBytes.length > 0) {
return new String(fileBytes);
}
}
return null;
}
private String calculateTime(long seconds) {
int day = (int) TimeUnit.SECONDS.toDays(seconds);
long hours = TimeUnit.SECONDS.toHours(seconds)
- TimeUnit.DAYS.toHours(day);
long …Run Code Online (Sandbox Code Playgroud) public interface Filter<M> {
boolean match(M m);
public static <T> Collection<T> filter(Collection<T> collection, Filter<T> filter) {
return collection.stream().filter(filter::match).collect(Collectors.toList());
}
////////////////////////////////////////////////////////////////
public static void main(String[] args) {
ArrayList<Integer> intList = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8));
System.out.println(intList);
List<Integer> list = filter(intList, null);
System.out.println(list);
}
}
Run Code Online (Sandbox Code Playgroud)

我正在学习java 8流媒体功能,这是我有问题的代码......
我不知道为什么参数intList不符合filter()方法.Java应该知道<T>在Integer这里,对吗?
我怎么能代替包含字符串"用\"?
replace(""","\"") 不适合我.
public static String replaceSpecialCharsForJson(String str){
return str.replace("'","\'")
.replace(":","\\:")
.replace("\"","\"")
.replace("\r", "\\r")
.replace("\n", "\\n");
}
Run Code Online (Sandbox Code Playgroud) 我想知道是否可以在类泛型中使用任意数量的参数?在方法中,可以使用'...'这就是为什么我想知道在类泛型中是否有类似的方法可以做到这一点
Class<T ...>
Run Code Online (Sandbox Code Playgroud)
像上面那样的东西.
if(this.currency.equalsIgnoreCase("?")) {
r="? "+r;
}
Run Code Online (Sandbox Code Playgroud)
我想?在java中比较(印度卢比符号).在这里,我试图打印货币卢比符号,但它显示的符号就像â?¹.
如何克服这个问题?
说我有这样一个类:
class ParameterizedType<T>{
public boolean equals(Object o){
if (ParameterizedType<T>.class.isInstance(o)){
ParameterizedType<T> other = (ParameterizedType<T>) o;
return this.toString() == other.toString();
}
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
在这种方法中,我可以从eclipse中得到两个不同的警告.
ParameterizedType<T>.class 在语法上是不正确的
(ParameterizedType<T>) o是一个未经检查的演员
怎么可以解决这个问题呢?
我不明白为什么包含(如果我在自定义类已经过去了,我可以重新审视我的hascode和equals方法,但这是整型其实)不工作.那么代替包含我可以使用的东西?请帮忙.
Set<Integer> st = new HashSet<>();
st.add(12);
Set<Integer> st1 = new HashSet<>();
st1.add(12);
System.out.println(st.contains(st1));
Run Code Online (Sandbox Code Playgroud)