我正在审查我为明天上午的期末考试做准备的期中考试.我错了这个问题,但是没有正确的答案指出,我忽略了向教授询问它.
请考虑以下代码段:
public static void main(String[] args) throws FileNotFoundException
Run Code Online (Sandbox Code Playgroud)
关于此代码的以下哪些陈述是正确的?
FileNotFoundException.FileNotFoundException发生,主要方法应该简单地终止.我选择了第二个选项.
我已成功配置我的gradle构建脚本,以创建我的应用程序的zip分发,并在根目录下添加一个额外的'config'文件夹.此文件夹仅包含(至少现在)应用程序正在使用的一个属性文件,并且位于应用程序的类路径中.
然而,我现在正在寻找的是对应用程序插件中的"运行"任务执行相同操作的方法.当我尝试以这种方式运行我的应用程序时(为了测试),我的程序无法运行,因为类试图在类路径的根目录上访问此属性文件.
如果我可以让IntelliJ或Eclipse将这个文件夹添加到其类路径中,就像其他文件夹(src/main/java,src/main/resources,...)那样我可以运行和调试我的代码在IDE中,无需调用gradle任务.我想尽量避免将此代码绑定到任何一个IDE,以便当任何人需要处理项目时,他们只需要导入build.gradle文件并让IDE生成所需的相应配置文件.
这是我的build.gradle文件:
apply plugin: 'application'
mainClassName = "MainClass"
startScripts {
// Add config folder to classpath. Using workaround at
// https://discuss.gradle.org/t/classpath-in-application-plugin-is-building-always-relative-to-app-home-lib-directory/2012
classpath += files('src/dist/config')
doLast {
def windowsScriptFile = file getWindowsScript()
def unixScriptFile = file getUnixScript()
windowsScriptFile.text = windowsScriptFile.text.replace('%APP_HOME%\\lib\\config', '%APP_HOME%\\config')
unixScriptFile.text = unixScriptFile.text.replace('$APP_HOME/lib/config', '$APP_HOME/config')
}
}
repositories {
...
}
dependencies {
...
}
Run Code Online (Sandbox Code Playgroud)
可能需要发生的是我需要将/ src/dist/config文件夹复制到构建目录并添加到类路径中,或者将其内容复制到已存在于类路径中的文件夹中.
我正在检查TabControl的内置.net控件的来源,我看到它在决定是否向集合添加或插入TabPage之前引用此属性.
if (this.owner.IsHandleCreated)
{
this.owner.AddTabPage(tabPage, tabPage.GetTCITEM());
}
else
{
this.owner.Insert(this.owner.TabCount, tabPage);
}
Run Code Online (Sandbox Code Playgroud)
这两个函数最终实现了相同的目标 - 它们将TabPage添加到内部"TabPages"集合的末尾......但我只是不明白为什么它应该与您使用的函数有关.
this指的ControlCollection是覆盖内置的Control.ControlCollection.owner是使用的TabControl ControlCollection.
我正在创建一个实现可比较的自定义类,如果有人试图比较两个我的定义无法比较的对象,我想抛出某种异常.API中是否已存在合适的异常,或者我是否需要创建自己的异常?
我正在尝试设计一个简单的应用程序用于计算文件的CRC32/md5/sha1/sha256/sha384/sha512,我遇到了一些障碍.这是在C#中完成的.
我希望能够尽可能高效地完成这项工作,所以我最初的想法是在处理前先将文件读入内存流,但我很快就发现非常大的文件会导致内存耗尽.所以我似乎必须使用文件流.我认为问题在于,一次只能运行一个哈希函数,而使用文件流执行此操作需要一段时间才能完成每个哈希.
我怎样才能将一小段文件读入内存,使用所有6种算法处理它,然后转到另一个块...或者哈希不能以这种方式工作?
这是我原本尝试将文件读入内存.当我在内存流上运行散列算法之前尝试将CD映像读入内存时,它失败了:
private void ReadToEndOfFile(string filename)
{
if (File.Exists(filename))
{
FileInfo fi = new FileInfo(filename);
FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read);
byte[] buffer = new byte[16 * 1024];
//double step = Math.Floor((double)fi.Length / (double)100);
this.toolStripStatusLabel1.Text = "Reading File...";
this.toolStripProgressBar1.Maximum = (int)(fs.Length / buffer.Length);
this.toolStripProgressBar1.Value = 0;
using (MemoryStream ms = new MemoryStream())
{
int read;
while ((read = fs.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, read);
this.toolStripProgressBar1.Value += 1;
}
_ms = ms;
}
}
}
Run Code Online (Sandbox Code Playgroud) 对于家庭作业,我需要实现自己的PriorityQueue和PriorityQueueSort.我使用泛型来使它没有排序功能,但现在我被困在这里..
public static void PriorityQueueSort(Iterable<?> list,
PriorityQueue<?,?> pq) {
if (!pq.isEmpty()) {
throw new IllegalArgumentException("Non-Empty PriorityQueue");
}
for (Object obj : list) {
}
}
Run Code Online (Sandbox Code Playgroud)
我需要传入一个列表和一个空的PriorityQueue,所以我最好猜测如何做到这一点就在上面.我应该如何攻击这个以便我可以遍历未知类型的列表,并将具有正确类型的该列表中的每个元素添加到优先级队列中?
编辑:
由于确定我没有提供足够的信息,因此这里有一些细节.
我有一个自定义的PriorityQueue类,以及一个自定义的Entry类,它包含一个类型为K的键,其值为V.
我需要能够使用任何类型T获取任何可迭代列表并迭代它,获取每个项目并将其添加到最初为空的PriorityQueue作为具有空值的键.然后,我需要在我的PriorityQueue上连续调用removeMin()并将其按顺序添加回相同的列表对象.
public class PriorityQueue<K extends Comparable<? super K>,V> {
private Entry<K,V> _head;
private Entry<K,V> _tail;
private int _size;
public PriorityQueue() {
this._head = null;
this._tail = null;
this._size = 0;
}
public int size() {
return _size;
}
public boolean isEmpty() {
return (size() == 0);
}
public Entry<K,V> min() { …Run Code Online (Sandbox Code Playgroud) 这是我第一次尝试使用gnuplot,我找不到任何关于如何实现这一点的说明.我发现的最接近的是:
http://gnuplot.sourceforge.net/docs_4.2/node259.html
使用1:2:3:4绘制'file.dat',向量头填充lt 2
但我找不到任何关于"file.dat"的解释.
那么有人可以给出一个简单的例子来说明如何绘制一个简单的2d矢量箭头吗?谢谢.
使用 MediaInfo 应用程序,我可以看到用 iPhone 5 拍摄的文件包含地理位置元数据,并用\xc2\xa9xyz和com.apple.quicktime.location.ISO6709标记。然而,我无法找到任何使用 xuggler 获取这些数据的方法。
\n\nFormat : MPEG-4\nFormat profile : QuickTime\nCodec ID : qt 0000.00 (qt )\nFile size : 7.50 MiB\nDuration : 3s 537ms\nOverall bit rate : 17.8 Mbps\nRecorded date : 2015-12-17T14:32:23-0330\nEncoded date : UTC 2015-12-17 18:02:23\nTagged date : UTC 2015-12-17 18:02:27\nWriting application : 8.4.1\nWriting library : Apple QuickTime\nModel : iPhone 5\n\xc2\xa9xyz : +47.5184-052.8046+133.390/\nMake : Apple\ncom.apple.quicktime.make : Apple\ncom.apple.quicktime.creationdate : 2015-12-17T14:32:23-0330\ncom.apple.quicktime.location.ISO6709 : +47.5184-052.8046+133.390/\ncom.apple.quicktime.software : 8.4.1\ncom.apple.quicktime.model : iPhone 5\nRun Code Online (Sandbox Code Playgroud)\n\n顺便说一句,这个文件上似乎有很多元数据,在通过 xuggler 调试时我无法立即找到它们。
\n\n …gradle 中应用程序插件中的distTar和distZip任务的正常行为似乎是将src/dist的内容复制到 zip 和 tar 文件中,但我在src/dist中有一个子文件夹,我想从默认分发中排除它,并将其包含在一个新的(扩展的)任务中,可能被称为 distZipWithJRE。
我已经能够在默认任务中排除此文件夹,如下所示:
distributions.main {
contents {
from('build/config/main') {
into('config')
}
from('../src/dist') {
exclude('jre')
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何定义与原始(未修改)任务一样行为的第二个任务?
我正在尝试设置我的IntelliJ工作区以在eclipse项目上进行开发.我遇到的一件事情令人困惑:
Error:(24, 8) java: SomeClass.java:24: getHeader(java.lang.String) in org.springframework.mock.web.MockHttpServletResponse cannot implement getHeader(java.lang.String) in javax.servlet.http.HttpServletResponse; attempting to use incompatible return type
found : java.lang.Object
required: java.lang.String
Run Code Online (Sandbox Code Playgroud)
问题是以下类定义:
public class SomeClass extends MockHttpServletResponse {
Run Code Online (Sandbox Code Playgroud)
问题似乎是因为MockHttpServletResponse实现Collection<String> getHeaders(String)为public List getHeaders(String name).在这里,我可以看到实现方法使用raw List,其中父级要求Collection输入泛型String.除了可能不是类型安全之外,为什么IntelliJ会将此标记为编译器错误而不是警告?
我无法更改任何这些库.我只是想在IntellJ 14中完成已经工作的东西而没有Eclipse 4.3+中的抱怨.
我已经更新到IntelliJ 15.0,该项目现在使用Java 1.7而不是1.6.我仍在使用IntelliJ遇到这个问题,但问题并非在Eclipse中出现.我可以通过IntelliJ使用现有的Ant脚本编译项目,但我无法通过IDE进行调试.
这是我的班级定义
public class ExecutableServletResponse extends MockHttpServletResponse {
...
Run Code Online (Sandbox Code Playgroud)
以下是我的"消息"窗格中显示的错误:
Error:(24, 8) java: getHeader(java.lang.String) in org.springframework.mock.web.MockHttpServletResponse cannot implement getHeader(java.lang.String) in javax.servlet.http.HttpServletResponse
return type java.lang.Object is not compatible with …Run Code Online (Sandbox Code Playgroud)