所以我正在使用Java编写程序,每当我运行它时,我都会收到错误"线程中的异常"主"java.lang.NullPointerException".当我仔细观察它时,它似乎是由参考变量数组引起的.这是导致问题的代码:
public class agendafunctions {
static String input = "true";
agendaitem item[] = new agendaitem[5];
public agendafunctions() {
item[0].name = "one";
item[1].name = "two";
item[2].name = "three";
item[3].name = "four";
item[4].name = "five";
}
Run Code Online (Sandbox Code Playgroud)
name是类Agendaitem中的变量.从我在其他地方读到的,错误是由程序试图使用null值的变量引起的.但是,当我添加一个值时,它表示它无法从String或类型议程项目中转换.有人可以帮忙吗?
我有以下代码,我写截断大值.
sub truncate_large_email_tag
{
my($email_tag) = @_;
my $size = length($email_tag);
if ($size>5000) {
my $fragment = substr($email_tag,0,5000);
$email_tag = $fragment;
#log_it( "\n\Truncated Large Email tags\n\n") if $TRACE;
}
Run Code Online (Sandbox Code Playgroud)
我在另一个子程序中使用调用来调用此子例程
sub do_something
{
#some code here # CFG_PASS is a hash
$EMAIL{$tag}=$CFG_PASS{$typ}{$tag}{$where . '_DEFAULTS'}; #Email
#tag initialized here
truncate_large_email_tag($EMAIL{$tag});
}
Run Code Online (Sandbox Code Playgroud)
但是当我检查$ EMAIL {$ tag}时仍然指向非截断值.难道我做错了什么?
我在C#中有一个简单的问题:
我有一个类(属性)嵌入在泛型类(Box)中,如下所示:
public class Box<E> where E : Box{
public class Properties {
}
}
Run Code Online (Sandbox Code Playgroud)
如何从外部类引用子类(Properties)?我需要与此java语句等效的东西:
Shape<?>.Properties prop = new Shape<?>.Properties();
Run Code Online (Sandbox Code Playgroud)
谢谢
我很抱歉,如果这个问题是一个非常简单的问题,但我是c ++的新手,并且正在研究一个简单的vocable培训师来理解c ++.(来自java ..)
我想传递一个const FileManager参考我的逻辑.但我没有得到它的工作.我不想要副本等.
所以我试着这样:(主要)
FileManager& file = FileManager();
Logic logic = Logic(file);
Run Code Online (Sandbox Code Playgroud)
在逻辑内部我想存储参考:
class Logic
{
public:
Logic(const FileManager& manager);
~Logic();
private:
const FileManager& m_fileManager;
};
Logic::Logic(const FileManager& manager) :
{
m_fileManager = manager;
}
Run Code Online (Sandbox Code Playgroud)
谢谢
我目前正在制作一个基本的绘图程序.其中一个要求是能够保存绘制对象列表并将其重新加载.到目前为止,我编写了一个保存函数,将列表中的所有项目导出为XML格式,我目前正在研究装载部分.
只要程序遇到"<RechthoekTool>"(RectangleTool的荷兰语),它就会执行以下代码:
//Create new tool.
RechthoekTool tool = new RechthoekTool();
//Turn <Startpoint> and <Endpoint> into actual points
var sp = Regex.Replace(xn["Startpunt"].InnerText, @"[\{\}a-zA-Z=]", "").Split(',');
tool.startpunt = new Point(int.Parse(sp[0]), int.Parse(sp[1]));
var ep = Regex.Replace(xn["Eindpunt"].InnerText, @"[\{\}a-zA-Z=]", "").Split(',');
tool.eindpunt = new Point(int.Parse(ep[0]), int.Parse(ep[1]));
//Set colour and width of brush
string kleur = xn["Dikte"].InnerText;
kleur.Replace(@"Color [", "");
kleur.Replace(@"]", "");
Color c = Color.FromName(kleur);
tool.kwastkleur = c;
tool.kwast = new SolidBrush(c);
tool.dikte = int.Parse(xn["Dikte"].InnerText);
//Add to list
s.listItems.Add(tool);
Run Code Online (Sandbox Code Playgroud)
每当我运行程序时,我得到'NullReferenceException未处理'错误("对象引用未设置为对象的实例.")at
s.listItems.Add(工具);
但是,我确实在开始时实例化了这个工具,不是吗?可能导致此错误的原因是什么?一些谷歌搜索告诉我这可能是因为我忘了分配一个房产,但据我所知,我已经把它们全部覆盖了......
非常感谢帮助.
我只是一个简单的问题.举个例子,用C++中的函数:
queue<int> q1;
q1.push(1);
queue<int> q2=q1;
Run Code Online (Sandbox Code Playgroud)
我知道"q1"和"q2"本身只是地址(就像一个指针,我是对的吗?)可能存储在堆栈上,而真实数据存储在堆上.所以,如果我弹出q2,会出现1吗?
我想制作一个字符串的副本,而没有字符串变量引用前一个字符串.toString()方法会成为解决方案吗?
换句话说,String.toString()是否返回其字符的副本而不是对其自身的引用?
用于c ++和汇编程序的工具链:GNU
我有以下C++代码:
int main(void)
{
int i = 33, j = 66;
swap(i,j);
cout << i << ", " << j << endl;
return(0);
}
Run Code Online (Sandbox Code Playgroud)
如果我现在检查生成的汇编代码,我会在swap调用区域中获得以下内容:
movl $33, -24(%rbp)
movl $66, -20(%rbp)
leaq -20(%rbp), %rdx
leaq -24(%rbp), %rax
movq %rdx, %rsi
movq %rax, %rdi
call _ZSt4swapIiEvRT_S1_
movl -20(%rbp), %ebx
movl -24(%rbp), %eax
Run Code Online (Sandbox Code Playgroud)
交换例程本身是:
_ZSt4swapIiEvRT_S1_:
.LFB1232:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
movq %rdi, -24(%rbp)
movq %rsi, -32(%rbp)
movq -24(%rbp), %rax …Run Code Online (Sandbox Code Playgroud) 我有Sample一个领域的课,我正在做以下事情:
我对BigInteger类对象做同样的事情,它的工作方式不同.为什么会这样?
我的课:
public class Sample {
private int number;
public int getNumber(){
return number;
}
public void setNumber(int number){
this.number = number;
}
public Sample add(int number){
this.number += number;
return this;
}
}
Run Code Online (Sandbox Code Playgroud)
调用:
public class Main {
public static void main(String[] args) {
Main m = new Main();
BigInteger b1 = new BigInteger("5");
Sample s1 = new Sample();
s1.setNumber(3);
System.out.println(s1.getNumber());
Sample s2 = m.checkSample(s1);
BigInteger b2 = m.checkBig(b1);
System.out.println(s1.getNumber()+" "+s2.getNumber()); …Run Code Online (Sandbox Code Playgroud) 考虑这个Java代码片段:
Vertex a = graph.addVertex(null);
Vertex b = graph.addVertex(null);
Run Code Online (Sandbox Code Playgroud)
是否有可能在C++中做同样的事情?C++中唯一的AFAIK选项是:
Vertex& a = graph.addVertex(NULL);
Run Code Online (Sandbox Code Playgroud)
或许这个:
typedef Vertex& Vertexref;
Vertexref a = graph.addVertex(NULL);
Run Code Online (Sandbox Code Playgroud)
当然,返回对象的副本也是可能的.
但Java语法对我来说似乎更直接.是否有可能在C++中使用它?