我在谷歌上搜索了很多次,使缓存无效,但我似乎找不到答案。作为背景,这是一个使用约束求解的时间表系统。我有一个名为periode
的自定义类,它具有公共方法getstart()
和getend()
。我还有一个抽象类constraint
和一个子类demavailconstratint
。在这个子类中(类似地在另一个子类中),无法解析periode
和dempermonor
中的方法。
在DemaVailConstraint
中,当对this.period
调用时,显示错误的方法是getstart()
和getend()
,但当对其他periode
对象调用时则不是。类似地,isavailable()
在setference()
方法中对this.gettemplarmonor()
调用时也会发生这种情况。这是演示器
中的一个公共方法。你知道为什么会这样吗?
下面是这些类(为了清楚起见,删除了一些方法):
public abstract class Constraint<V, D> {
private V variable;
public Constraint(V variable) {
this.variable = variable;
}
public abstract boolean satisfied();
public abstract int score();
protected V getVariable() {
return this.variable;
}
protected void setVariable(V variable) {
this.variable = variable;
}
}
public class DemAvailConstraint<Demonstrator, Period> extends Constraint {
private Period period;
private ArrayList<AvailBlock> periodAsBlocks;
public DemAvailConstraint(Demonstrator demonstrator, Period period) {
super(demonstrator);
this.period = period;
periodAsBlocks = new ArrayList<>();
periodAsBlocks.add( AvailBlock.from(this.period.getStart()) );
while ( periodAsBlocks.get( periodAsBlocks.size() - 1 ).getEnd().isBefore(this.period.getEnd()) ) {
periodAsBlocks.add( AvailBlock.from(periodAsBlocks.get( periodAsBlocks.size() - 1 ).getEnd()) );
}
}
@Override
public boolean satisfied() {
// now we check if the demonstrator is available for each block
for (AvailBlock block : this.periodAsBlocks) {
if ( !this.getDemonstrator().isAvailable(block) ) return false;
}
return true;
}
...
public Demonstrator getDemonstrator() {
return (Demonstrator) super.getVariable();
}
}
public class Period {
private String name;
private LocalDateTime start;
// duration in seconds
private int duration;
private Lecturer lecturer;
private ArrayList<Demonstrator> dems;
private ArrayList<Skill> skills;
/**
* Basic constructor. Use the factory method from() to make a period from AvailBlock objects.
* @param name
* @param start
* @param duration
* @param lecturer
*/
public Period(String name, LocalDateTime start, int duration, Lecturer lecturer) {
this.name = name;
this.lecturer = lecturer;
this.dems = new ArrayList<>();
this.skills = new ArrayList<>();
this.duration = duration;
this.start = start;
}
/**
* Static factory method that can create a period from a list of consecutive AvailBlock objects.
* @param name
* @param blocks
* @param lecturer
* @return
*/
public static Period from(String name, List<AvailBlock> blocks, Lecturer lecturer)
throws IllegalArgumentException {
if ( !AvailBlock.isConsecutive(blocks) ) {
throw new IllegalArgumentException( "Non-consecutive AvailBlock objects." );
}
ArrayList<AvailBlock> blocksSorted = new ArrayList<>(blocks);
Collections.sort(blocksSorted);
LocalDateTime start = blocksSorted.get(0).getStart();
int duration = blocksSorted.size();
return new Period(name, start, duration, lecturer);
}
...
public LocalDateTime getStart() {
return start;
// more getters and setters ...
public LocalDateTime getEnd() {
return this.start.plusSeconds(this.duration);
}
}
在使缓存无效、更改JDK等各种尝试之后,我删除了DemaVailConstraint
类声明中的
部分。我想我知道这为什么管用了。将生成演示器
和句点
的代码段添加到占位符类型中,而不是引用我的自定义类。这就是为什么类不能访问我的方法。我在抽象类约束
中保留了占位符代码
(变量和域),现在我想知道是否真的需要在子类中指定这些类型。
我遇到了一个问题,在我所有的应用程序中,右上角都有一个红叉。我可以运行它,但是十字架似乎没有消失。 我打开了运行/调试配置,它显示警告:找不到主方法。当我已经为每个应用程序都有了相应的主类和方法时,我不明白为什么找不到它。 我试图关闭项目,重新启动IntelliJ,重新启动我的笔记本电脑,刷新我的桌面,通过单击重新导入所有Gradle项目来刷新Gradle,重建项目并单击无效缓存/重新启动。我还尝
简介 框架中内置封装了一些公共函数,开发者在实际业务中可以直接使用,无需重复封装。其中包括: 协程函数 数组函数 目录(文件夹)函数 环境函数 文件函数 文件系统函数 对象函数 PHP 助手函数 字符串函数 系统函数 XML 函数 通用函数 协程函数 创建协程Swoft 框架中不能使用 Swoole 提供的 go 函数创建协程,否则会造成请求和上下文丢失最终导致一些不可预估的问题。 Swoft 拥
我正在使用IBM Watson服务,并通过maven依赖项导入了该库。 我认为一切都很顺利,因为所有的类都显示在外部库部分: 实例化类很好,但如果我尝试使用这些类中的方法,Intellij说“无法解析符号‘methodname’”。 我已经尝试了无效缓存操作,并尝试了其他可以在互联网上找到的技巧,但没有任何效果。。。我做错了什么?我是否必须勾选任何选项,以便Intellij找到方法?
我在一个公共类中有以下构造函数: 和变量在类中定义,该类对其进行了扩展。 当使用执行它时,我会得到以下错误消息。 将其设置为静态的,或者向类中添加一个无参数的构造函数 抛出com.hp.lft.sdk.GeneralleanFTException,java.lang.InterruptedException:将其设置为静态,或者在org.testng.internal.utils.CheckIns
本文向大家介绍iOS常用的公共方法详解,包括了iOS常用的公共方法详解的使用技巧和注意事项,需要的朋友参考一下 1. 获取磁盘总空间大小 2. 获取磁盘可用空间大小 3. 获取指定路径下某个文件的大小 4. 获取文件夹下所有文件的大小 5. 获取字符串(或汉字)首字母 6. 将字符串数组按照元素首字母顺序进行排序分组 使用如下: 输出结果如下: 输出结果 7. 获取当前时间 8. 计算上次日期距离
我正试着用Spring开始我的第一个项目。我使用IntelliJ idea,我对它也有点陌生。但无论如何,我遵循了Jetbrains网站上写的步骤,我不知道我做错了什么,但我在默认创建的第一个文件中遇到了很多错误。 Bloombookingapplication。Java语言 也许我很蠢,但我不知道我错过了哪一步... 我该怎么解决这个问题? 我已经找到了使用快速修复按钮添加Spring的方法。
我是Java EE和Maven的新手,所以我不确定需要哪些信息才能看到我犯了错误。 当我右键单击我的项目并进入Maven-->Reload project时,build选项卡打开,出现以下错误 当我悬停maven assembly插件时,IDE还告诉我 如果我需要任何进一步的信息,请告诉我。
我有智慧的想法。我做了一些编码练习(在maven中做了一些项目),并且在Idea15 CE中开发它。然后更新来了,我无法再次构建项目,因为错误:JComboBox的使用是在JDK1.6 API之后泛化的,这会导致JDK5.0的编译问题。(在maven中是target JDK1.8,在IDEA首选项是JDK1.8,在project首选项是JDK1.8。我试过从IDEA 15导入设置(在那里它仍然工作