我为我正在编写的java程序定义了两个类,称之为Class1和Class2.在Class1的构造函数的主体中,我调用了类2的构造函数.但是,我收到了编译错误
"The type of Class1(JSONObject) is erroneous".
Run Code Online (Sandbox Code Playgroud)
我试过谷歌搜索这个错误,但无法在任何地方找到任何关于这个确切错误的讨论,所以我想我会把它发布到堆栈交换.
有人可以解释这是什么类型的错误?class1和class2都非常简单:两者都只有一个构造函数方法,它在两种情况下都将JSONObject作为参数.唯一的导入是针对JSON.有什么建议?
//class1 definition
public class Class1 {
public Class1(JSONObject jObject){
try{
//parsing json and saving class variables
} catch(Exception e)
{
System.out.println("Class1 JSON Exception: " + e.getMessage());
}
}
}
//constructor of Class2
Class1 user;
public Class2(JSONObject jObject){
try{
JSONObject userJSON = jObject.getJSONObject("user");
user = new Class1(userJSON); //error occurrs here
}
catch(Exception e){
System.out.println("Class2 JSON Exception: " + e.getMessage());
}
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:当我尝试运行代码,即使有这个编译错误,我得到以下运行时错误:
Exception in thread "main" java.lang.ExceptionInInitializerError
at bitcoin.thesis.Client.main(BTCJamClient.java:18)
Caused by: …Run Code Online (Sandbox Code Playgroud) 我使用r markdown和knitr来制作tex文档.但是,有几次我遇到了一个问题,我在前言中加载了"mystyles.txt"文件的软件包与knitr自动加载的软件包冲突.根据问题,错误看起来不同,但它始终以"选项冲突"为特征.
我相信我明白这个问题的来源(我认为) - 我只是不知道如何解决它.当我尝试使用mystyles.txt一个包,如\usepackage[pdftex]{graphicx}或\usepackage[table]{xcolor},我得到的选项冲突错误,因为这些包已经被下载,而默认选项.
但是,这提出了一个问题,因为我需要使用我指定的确切选项加载包.这意味着我需要以某种方式来抑制或修改r markdown/knitr自动完成的包加载.
例如,knitr会自动调用\usepackage{graphicx}.如果在序言中有一些方法可以指定\usepackage[pdftex]{graphicx},那么我可以从mystyles.txt中删除相同的行,我会很好.遗憾的是,我无法找到有关此问题的任何文档,以下参考指南未提供任何见解:http://rmarkdown.rstudio.com/RMarkdownReferenceGuide.pdf.
有谁知道如何处理这个问题?
- 保罗
有人可以解释一下以下输出吗?除非我遗漏了某些东西(我可能是这样),否则似乎对data.table进行子集化的速度取决于存储在其中一列中的特定值,即使它们属于同一类并且除了它们之外没有明显的差异值.
这怎么可能?
> dim(otherTest)
[1] 3572069 2
> dim(test)
[1] 3572069 2
> length(unique(test$keys))
[1] 28741
> length(unique(otherTest$keys))
[1] 28742
> sapply(test,class)
thingy keys
"character" "character"
> sapply(otherTest,class)
thingy keys
"character" "character"
> class(test)
[1] "data.table" "data.frame"
> class(otherTest)
[1] "data.table" "data.frame"
> start = Sys.time()
> newTest = otherTest[keys%in%partition]
> end = Sys.time()
> print(end - start)
Time difference of 0.5438871 secs
> start = Sys.time()
> newTest = test[keys%in%partition]
> end = Sys.time()
> print(end - start)
Time …Run Code Online (Sandbox Code Playgroud) 我有一个简单的问题.为什么r会返回不同的结果
dim(data2[data2$as_of_date=="2014-12-31",])
dim(data2[data2$as_of_date%in%c("2014-12-31"),])
Run Code Online (Sandbox Code Playgroud)
?
输出:
> dim(data2[data2$as_of_date=="2014-12-31",])
[1] 48684 92
> dim(data2[data2$as_of_date%in%c("2014-12-31"),])
[1] 0 92
Run Code Online (Sandbox Code Playgroud) 我在 joda 时间中使用 parseDateTime 方法时遇到问题。当我尝试解析下面的日期时,结果是休息一天。我知道已经有一个关于此的类似线程,并且我知道如果您的 dayOfWeek 和 dayOfMonth 不匹配,它会优先考虑 dayOfWeek。但我的日期是有效的——我检查过 2 月 22 日是星期五。但是当我解析它时,我得到的是 2 月 21 日,星期四。代码如下:
DateTimeFormatter NBSfmt = DateTimeFormat.forPattern("EEE, dd MMM yyyy HH:mm:ss Z");
DateTimeFormatter MYfmt = DateTimeFormat.forPattern("yyyy-MM-dd");
String date ="Fri, 22 Feb 2013 00:00:00 +0000";
DateTime datetime = NBSfmt.parseDateTime(date);
System.out.println(datetime.toString());
Run Code Online (Sandbox Code Playgroud)
这是输出:2013-02-21T19:00:00.000-05:00
有人知道这里发生了什么事吗?任何见解将不胜感激。谢谢,保罗
我刚刚在这里阅读这篇文章:
答案非常有趣.他们似乎最终确定没有理由创建这样一个循环符号链接,因此它必须是错误创建的.如果这是真的,那么为什么它们被允许呢?是因为禁止它们的机制非常复杂或计算密集吗?
我不明白为什么会这样:我们不能只比较内存中的地址,看它是否与目标地址相同,然后如果它们是相同的,抛出一个错误?
编辑:可能在某些语言中会出现错误,除非您使用某种强制选项.在那些情况下,那么我的问题就变成了:为什么你会允许强制选择?
编辑:在@Wumpus Q Wembley的帮助下进行了一些进一步的研究,似乎在unix中确实不允许这样做并导致以下错误:
ln: ‘/usr/bin/apt-config’ and ‘/usr/bin/apt-config’ are the same file
但是,当符号链接到自身的文件已经是来自其他文件的符号链接时,这确实会发生.我不确定为什么这种行为是可取的?
- 保罗
我目前正在编写一个java程序,我得到的结果似乎很奇怪.我正在构建类SimulatedExchange的对象,它具有以下构造函数:
public class SimulatedExchange {
public static String exchangeName;
SimulatorData sim;
public static double Fee;
public static Limit buyLimit;
public static Limit sellLimit;
public SimulatedExchange(String exchangename, SimulatorData simdata){
exchangeName = exchangename;
sim = simdata;
if (exchangename.contentEquals("Exchange1")) Fee = .005;
if (exchangename.contentEquals("Exchange2")) Fee = .0055;
if (exchangename.contentEquals("Exchange3")) Fee = .002;
buyLimit = new Limit();
sellLimit=new Limit();
}
Run Code Online (Sandbox Code Playgroud)
我的主要课程如下:
public static void main (String[] args){
SimulatorData fake = new SimulatorData("c:/users/el nico/documents/SimulatorData.xls");
SimulatedExchange Exchange1 = new SimulatedExchange("Exchange1", fake);
SimulatedExchange Exchange2 = new SimulatedExchange("Exchange2", …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用ios包读取csv文件,但没有读取任何内容.我检查了文件流中的failbit,由于某种原因,它在我实际读取任何内容之前立即设置.这是我的代码:
#include <fstream>
#include <iostream>
using namespace std;
int main(int argc, char* argv[]){
ifstream infile("~/txs_sample3.csv");
cout<<"badbit: "<<infile.bad()<<
", failbit: "<<infile.fail()<<
", eof: "<<infile.eof()<<
", good: "<<infile.good()<<endl;
}
Run Code Online (Sandbox Code Playgroud)
txs_sample3.csv:
block-number,gas,gas-price,gas-used,value,from,hash,timestamp,to
2100001,132650,20000000000,32650,1023220.89,0x8224ec27ed526e48cbaba8cb603b1d092e210ebb,0xc3deb238df92f77a41508bb1f731b17c03603f9f5ee802f043a0e35bff6160e7,1471600276,0xe94b04a0fed112f3664e45adb2b8915693dd5ff3
2100001,250000,20000000000,21000,1048570.97,0x9e6316f44baeeee5d41a1070516cc5fa47baf227,0xce7f6bfef33e1982a727b78118faaa55a7f0d9f87240b4a717ea08a8d6b5818b,1471600276,0x29158e02823fdd9cbc66dd3d4a9c51b9df88f823
2100001,90000,20000000000,21000,1010199.4901117386,0xea674fdde714fd979de3edf0f56aa9716b898ec8,0xec2493c5da6a8e562bdffba2c0a7dc7ed1ed261100f013b69a6a764032586c75,1471600276,0xc976d91972173ec9698a9e190f8cd8541e18d2be
2100001,21000,20000000000,21000,1489845.61,0xa8e8311be097afc3537dd084cdd507d6436d72b7,0xb2c139c4038c7c677ff45a197e8724f517ef2bb04eaf0ee7003182663f2ce65f,1471600276,0x91337a300e0361bddb2e377dd4e88ccb7796663d
Run Code Online (Sandbox Code Playgroud)
对这里发生的事情有任何帮助吗?
- 保罗
我需要在单元格中输入以下文本:
+A
Run Code Online (Sandbox Code Playgroud)
重要的是它没有引号.问题在于它将其作为公式读取并自动将其转换为公式并将其=+A读取.我不想将其作为公式输入,因为它会给我结果#NAME?结果.我怎么能做到这一点?