运行以下代码:package day1119; public class TestBox2 { public static void main(String[] args) { Integer a = 100; Integer b = 100; Integer c = 200; Integer d = 200; System.out.println(a == b); System.out.println(c == d); } }
时间: 2023-12-03 08:44:06 浏览: 38
输出结果为:
```
true
false
```
这是因为Java中对于 `Integer` 类型的数值,如果数值在 `-128` 到 `127` 之间,则会被缓存起来,即使用相同的引用。所以当 `a` 和 `b` 取值均在 `-128` 到 `127` 之间时,它们的引用地址是相同的,所以 `a == b` 为 `true`;而 `c` 和 `d` 取值都大于 `127`,所以它们的引用地址不同,所以 `c == d` 为 `false`。
相关问题
C++TestBox
是的,C++TestBox是一个常见的C++测试框架,用于编写和运行C++代码的单元测试。它提供了一组函数和工具,可以帮助开发人员验证他们的代码是否按预期工作。通过编写测试用例并运行这些测试用例,可以检测和调试代码中的错误和问题。你可以使用C++TestBox来测试函数、类和模块,并获取有关代码覆盖率的信息。
void VisionGlobalScene::slotActCopy()//复制 { QList<QGraphicsItem*> items = selectedItems(); SPListXObject objList; ShapeList shapes; for each (QGraphicsItem * item in items) { Graphics* graphics = dynamic_cast<Graphics*>(item); if (graphics) { TestBoxGraphics* testBox = qobject_cast<TestBoxGraphics*>(graphics); if (testBox) objList.append(testBox->testBox()); else shapes.append(graphics->shape()); } } QMimeData* mimeData = 0; if (objList.size() > 0) mimeData = XObject::MimeDataList(objList); if (shapes.size() > 0) { if (!mimeData) mimeData = new QMimeData; QByteArray encodedData; QDataStream stream(&encodedData, QIODevice::WriteOnly); stream << shapes; mimeData->setData("vision/shape_list", encodedData); } // 创建剪贴板对象 QClipboard* clipboard = QApplication::clipboard(); clipboard->setMimeData(mimeData); } 这段代码加上详细注释
```
void VisionGlobalScene::slotActCopy()//复制
{
// 获取选中的图形项
QList<QGraphicsItem*> items = selectedItems();
SPListXObject objList; // 创建一个对象列表
ShapeList shapes; // 创建一个形状列表
// 遍历选中的图形项
for each (QGraphicsItem * item in items) {
Graphics* graphics = dynamic_cast<Graphics*>(item);
if (graphics) {
// 如果是 TestBoxGraphics 类型的图形项,将其添加到对象列表中
TestBoxGraphics* testBox = qobject_cast<TestBoxGraphics*>(graphics);
if (testBox)
objList.append(testBox->testBox());
else
shapes.append(graphics->shape()); // 否则将其形状添加到形状列表中
}
}
QMimeData* mimeData = 0;
// 如果对象列表中有对象,则创建对象的 MIME 数据
if (objList.size() > 0)
mimeData = XObject::MimeDataList(objList);
// 如果形状列表中有形状,则创建形状的 MIME 数据
if (shapes.size() > 0) {
if (!mimeData)
mimeData = new QMimeData;
QByteArray encodedData;
QDataStream stream(&encodedData, QIODevice::WriteOnly);
stream << shapes;
mimeData->setData("vision/shape_list", encodedData);
}
// 创建剪贴板对象
QClipboard* clipboard = QApplication::clipboard();
clipboard->setMimeData(mimeData);
}
```
这段代码是一个用于复制选中的图形项的槽函数。首先,它通过调用 `selectedItems()` 获取当前场景中选中的图形项。然后,它遍历选中的图形项,将其中的 `TestBoxGraphics` 类型的图形项添加到对象列表 `objList` 中,将其他类型的图形项的形状添加到形状列表 `shapes` 中。
接着,根据对象列表和形状列表是否为空,创建相应的 MIME 数据。如果对象列表不为空,则调用 `XObject::MimeDataList()` 创建对象的 MIME 数据。如果形状列表不为空,则创建一个新的 `QMimeData` 对象,并将形状列表编码为字节数组,并设置其数据类型为 "vision/shape_list"。
最后,通过 `QApplication::clipboard()` 创建剪贴板对象,并将创建的 MIME 数据设置到剪贴板上。这样,用户就可以通过粘贴操作将复制的图形项粘贴到其他地方。