RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-1084

Merlin's questions

Martin Hope
Merlin
Asked: 2022-05-23 03:46:27 +0000 UTC

finally 块是否总是被执行?

  • 2

Bruce Eckel 在“Java Philosophy”中的第 388 页写道

finally 块总是被执行
但是在第 400 页上是完全相反的声明,它可能无法实现
如果构造失败,则不执行 finally 块
书中第二条语句的上下文以及示例代码:
//: exceptions/Cleanup.java
// Гарантированное освобождение ресурса
public class Cleanup {
public static void main(String[] args) {
  try {
     lnputFile in = new InputFile("Cleanup.java")j
     try {
       String s;
       int i = 1;
       while((s = in.getLine()) != null)
             ; // Обработка данных по строкам...
  } catch(Exception e) {
     System.0ut.println("Перехвачено исключение Exception в main");
     e .printStackTrace(System.out);
  } finally {
     in.dispose();
  }
} catch(Exception e) {
  System.out.println("Ошибка при конструировании InputFile");
}
}
} /* Output:
dispose() успешен
*///:~
仔细看看背后的逻辑: lnputFile 对象实际上是在它自己的 try 块中构造的。如果发生构造错误,则程序进入外层catch块,不会调用dispose()方法。但是如果构造成功,你需要确保对象已经完成,所以在构造之后立即创建一个新的 try 块。执行最终操作的 finally 块链接到内部 try 块;如果构造失败,finally 块不会被执行,但如果构造成功,它会一直执行
java
  • 1 个回答
  • 10 Views
Martin Hope
Merlin
Asked: 2022-05-21 04:45:31 +0000 UTC

集合允许重复吗?

  • 2

为什么在“Horstmann K. - Java. The Professional's Library, Volume 1”一书中写到该集合不允许重复对象?这是否适用于任何实现 Collection 接口的集合?还是一些具体的实现?我特别引用了整个第 9.1.2 节,即使从上下文中也不清楚是什么意思。

9.1.2. 集合接口 Java 库中集合类的核心是集合接口。它包括两个主要方法:

公共接口集合{
布尔添加(E元素);
迭代器();}

除了这些之外,本章后面还会讨论其他几种方法。add() 方法将一个元素添加到集合中。如果添加的元素实际更改了集合,则返回布尔值 true,如果集合保持不变,则返回布尔值 false。因此,如果您尝试将对象添加到已经存在此类对象的集合中,则调用 add() 方法不会给出所需的结果,因为该集合不允许重复对象。并且 iterator() 方法返回一个对象实现Iterator接口的类。可以选择一个迭代器对象依次访问集合的所有元素。下一节将更详细地讨论迭代器。

java
  • 2 个回答
  • 10 Views
Martin Hope
Merlin
Asked: 2022-05-20 02:05:39 +0000 UTC

何时使用 Collection,何时使用 Iterator?

  • 0

在哪些情况下应该通过 Collection,在哪些情况下通过 Iterator?(特别是如果您只需要遍历所有元素)。Bruce Eckel 在“Java 哲学”一书中(第 354 页)写道

在编写 Collection 接口的实现困难或不切实际的类时,Iterator 解决方案看起来很有吸引力。

这在现代版本的 Java 中也有关系吗?

代码示例:

//:holding/InterfaceVsIterator.java
import typeinfo.pets.*;
import java.util.*;

public class InterfaceVsIterator{

public static void display(Iterator<Pet> it){
  while(it.hasNext()){
  Pet p=it.next();
  System.out.print(p.id()+":"+p+"");
  }
 System.out.println();
}

public static void display(Collection<Pet> pets){
for(Pet p:pets)
  System.out.print(p.id()+":"+p+"");
System.out.println();
}
...

他为什么要给班级打电话InterfaceVsIterator?Iterator它也是一个界面。

java
  • 1 个回答
  • 10 Views
Martin Hope
Merlin
Asked: 2022-05-18 21:40:30 +0000 UTC

为什么该方法不包含有关序列类型的信息?

  • 0

阅读 Bruce Eckel 的 Java 哲学,第 338 页

作为另一个例子,考虑创建一个独立于容器的显示方法:

//: holding/CrossContainerIteration.java
import typeinfo.pets.*j
import java.util.*j
public class CrossContainerIteration {

public static void display(Iterator<Pet> it) {
while(it.hasNext()) {
 Pet p = it.next();
 System.out.print(p.id() + ":" + p + " ");
}
System.out.println();
}

public static void main(String[] args) {
  ArrayList<Pet> pets = Pets.arrayList(8);
  LinkedList<Pet> petsLL = new LinkedList<Pet>(pets);
  HashSet<Pet> petsHS = new HashSet<Pet>(pets);
  TreeSet<Pet> petsTS = new TreeSet<Pet>(pets);
  display(pets.iterator());
  display(petsLL.iterator());
  display(petsHS.iterator());
  display(petsTS.iterator());
}

} 

/* Output:
0:Rat l:Manx 2:Cymric 3:Mutt 4:Pug 5:Cymric 6:Pug 7:Manx
0:Rat l:Manx 2:Cymric 3:Mutt 4:Pug 5:Cymric 6:Pug 7:Manx
4:Pug 6:Pug 3:Mutt l:Manx 5:Cymric 7:Manx 2:Cymric 0:Rat
5:Cymric 2:Cymric 7:Manx l:Manx 3:Mutt 6:Pug 4:Pug 0:Rat
*///:~

请注意,display() 方法不包含有关序列类型的信息。

为什么作者说它display不包含有关序列类型的信息,因为类型是在传入方法参数本身中指定的display(Iterator<Pet> it)?是的,并且在方法内部指示Pet p

java
  • 1 个回答
  • 10 Views
Martin Hope
Merlin
Asked: 2022-04-20 03:30:40 +0000 UTC

在Java中,所有方法都通过后期绑定绑定?

  • 2

请告诉我,现在我正在阅读Bruce Eckel - Java Philosophy,它是用 Java 编写的(241 页)

Java中所有方法的绑定都是多态的,通过后期绑定

同时它写得更早一点

所有 Java 方法都使用后期绑定,除非该方法已被声明为 final。

嗯,我在网上找了资料:调用静态方法和方法通过super使用早期绑定。

第一个陈述是错误的吗?

java
  • 2 个回答
  • 10 Views
Martin Hope
Merlin
Asked: 2022-04-08 05:21:56 +0000 UTC

如何复制表中的一行并返回新行的id?ORA-00933

  • 2

任务:复制表中的一行并返回id一个新行。因为 表格有很多列,我想这样做没有不必要的手势。

这是我试图做的,但它不起作用:

DECLARE
  new_id NUMBER;
  old_id NUMBER;
BEGIN
old_id:=2584;
INSERT INTO table_name_44 (column1, column2, column3, ...)
  SELECT column1, column2, column3, ...
    FROM table_name_44
   WHERE old_id:=2584
RETURNING column_id INTO new_id;
END;

错误报告 -
ORA-06550:第 10 行,第 1 列:
PL/SQL:ORA-00933:SQL 命令未正确结束

id设计后如何退货INSERT .... SELECT?也许还有其他方法?

在 PL/SQL 或 SQL 上是可能的。

sql
  • 1 个回答
  • 10 Views
Martin Hope
Merlin
Asked: 2022-03-18 01:55:32 +0000 UTC

如何为 TUniQuery 设置可变数量的命名 SQL 查询参数?

  • 0

例如,有一个像ExecSQLEx这样的函数,你可以向它传递可变数量的参数:

if not DataModule1.UniConnection1.InTransaction then 
DataModule1.UniConnection1.StartTransaction;          
try          
  //тут выполняемый запрос
  DataModule1.UniConnection1.ExecSQLEx('UPDATE ...','name_parametr1', parametr1, 'name_parametr2', parametr2,'name_parametr3', parametr3 ...);
  DataModule1.UniConnection1.Commit;  
except on E: Exception do
  begin
    DataModule1.UniConnection1.Rollback;
  end;
end;

并且您可以创建一个函数来消除一堆样板代码(因此您不必每次都编写它)

class function myExecSQLEx (SQL:string; params: array of Variant): String; 
...
 function TForm1.myExecSQLEx (SQL:string; params: array of Variant): String;
 begin
  if not DataModule1.UniConnection1.InTransaction then
  DataModule1.UniConnection1.StartTransaction;
  try

    DataModule1.UniConnection1.ExecSQLEx(SQL, params) //просто передаётся произвольное кол-во именованных параметров
    DataModule1.UniConnection1.Commit;
    Result:='ok';
  except on E: Exception do
    begin
      DataModule1.UniConnection1.Rollback;
      Result:='Ошибка: '+ E.Message;
    end;
  end;
 end;

但这一切都适用于 ExecSQLEx 函数,并且由于我在 TUniQuery 组件中执行查询,因此只有预先指定的参数的精确枚举:

...
UniQuery1:TUniQuery;
...
UniQuery1.Params.ParamByName('name_parametr1').AsInteger := parametr1;
UniQuery1.Params.ParamByName('name_parametr2').AsInteger := parametr2;
...
UniQuery1.Open;

是否有可能以某种方式使 UniQuery 传递任意数量的命名参数?

sql
  • 1 个回答
  • 10 Views
Martin Hope
Merlin
Asked: 2022-02-27 18:43:11 +0000 UTC

编写自己的库时不能使用 Rust 语言的哪些特性?

  • 1

例如:是否可以在编写的库的代码中使用宏?

dll
  • 1 个回答
  • 10 Views
Martin Hope
Merlin
Asked: 2021-12-18 01:39:55 +0000 UTC

使用数据库优先方法自动更新 Java 代码中的实体

  • 0

是否有可以自动创建和更新数据库模型的客户端视图的框架或库?那些。当我更改数据库中的模式时(例如,我手动向数据库中添加了新表或表中的新字段,或者创建了新的表之间的关系),数据库模型的 Java 表示会自动更新(在开发阶段),这样我就不会在 Java 代码中手动创建或更改实体。

java
  • 1 个回答
  • 10 Views
Martin Hope
Merlin
Asked: 2020-12-15 03:40:58 +0000 UTC

Oracle DB 是否具有表继承?

  • 2

INHERITSOracle DB 是否具有类似于PostgreSQL的表继承?

如果没有,有什么方法可以实现这样的功能?

sql
  • 1 个回答
  • 10 Views
Martin Hope
Merlin
Asked: 2020-11-30 23:54:18 +0000 UTC

CASE 语句相对于 IF-ELSIF 的优势是什么?

  • 6

CASE与通常的单一条件列表相比,运算符的优势是什么IF-ELSIF?

应该在什么时候应用?

oracle
  • 1 个回答
  • 10 Views
Martin Hope
Merlin
Asked: 2020-09-19 17:33:21 +0000 UTC

如何检测软件击键?

  • 0

在我的应用程序中检测程序化击键的方法有哪些?正在解决的问题:防止机器人。

java
  • 1 个回答
  • 10 Views
Martin Hope
Merlin
Asked: 2020-04-12 05:51:02 +0000 UTC

如何在 FastReport 中静默导出到 Excel?

  • 0

如何在 FastReport 中导出到 Excel,包括。不显示对话框和分页符?请提供一个完整的例子。

delphi
  • 1 个回答
  • 10 Views
Martin Hope
Merlin
Asked: 2020-04-12 05:18:23 +0000 UTC

如何使用快速报告在表单上进行内联预览?

  • 1

如何在我的 TForm 区域中嵌入报表预览?我到处都能找到有关如何启动预览的示例(它作为独立的单独应用程序运行)。

delphi
  • 1 个回答
  • 10 Views
Martin Hope
Merlin
Asked: 2020-02-17 04:25:29 +0000 UTC

“Thread.sleep()”方法暂停了哪个特定线程?

  • 1

我创建一个这样的线程:

public class Program        //Класс с методом main().
{
    public static void main(String[] args)
    {
        //Создание потока
        Thread myThready = new Thread(new Runnable()
        {
            public void run() //Этот метод будет выполняться в побочном потоке
            {
                System.out.println("Привет из побочного потока!");
                Thread.sleep(200);// пауза текущего потока или главного?
                // чем тогда отличается от Thread.currentThread().sleep(200); ?
            }
        });
        myThready.start();  //Запуск потока

        System.out.println("Главный поток завершён...");
    }
}

什么特定的线程方法 Thread.sleep(200)暂停?那么这与 有什么不同Thread.currentThread().sleep(200)呢?

java
  • 1 个回答
  • 10 Views
Martin Hope
Merlin
Asked: 2020-02-13 02:10:52 +0000 UTC

如何检查 RGB 颜色是否属于 HSB 范围?

  • 0

我正在尝试检查给定 HSB 范围内的 RGB 颜色,但找不到它。

Сам диапазон:
    Hue = 0  //оттенок
    saturation1 > 94% & saturation1 < 97%       //насыщенность 
    brightness1 > 0.55 & brightness1 < 0.6  //яркость


//Color c = new Color(BufferedImage1.getRGB(col, row));
Color c = new Color(149, 5, 5);  //для примера возьмём значение заданное вручную
int red1 = c.getRed();
int green1 = c.getGreen();
int blue1 = c.getBlue();
float[] hsb = new float[3]; 
 int r = (red1 >> 16) & 0xFF; 
int g = (green1 >> 8) & 0xFF; 
int b = (blue1  ) & 0xFF; 
Color.RGBtoHSB(r, g, b, hsb);     

float hue1 = hsb[0];
float saturation1 = hsb[1];
float brightness1 = hsb[2];

 System.out.println("Color hsb " + hue1 + ", "+ saturation1 +", "+ brightness1 + " ");  
 if ((hue1 == 0) & 
     (saturation1 > 0.94 & saturation1 < 0.97 ) &
     (brightness1 > 0.55 & brightness1 < 0.6)        ) {
      System.out.println("Color " + hue1 + ", "+ saturation1 +", "+ brightness1 + " входит в диапазон"); 
 }

我得到了一些错误的 HSB 值(0.6666667, 1.0, 0.019607844)虽然根据 RGB 颜色的站点(149.5.5)HSB 应该等于(0.96.64.58.43)

java
  • 1 个回答
  • 10 Views
Martin Hope
Merlin
Asked: 2020-02-09 16:44:50 +0000 UTC

如何制作带有不透明边框的完全透明窗口?

  • 0

我需要完全访问透明部分,即 这样您就可以在那里单击鼠标等。(好像没有透明窗口,也没有阻止对屏幕可见部分的访问)在 Java 中可以使用什么技术来做到这一点?用Graphics直接在屏幕上画框容易吗?显示一个代码示例。

java
  • 2 个回答
  • 10 Views
Martin Hope
Merlin
Asked: 2020-10-06 19:40:05 +0000 UTC

将动态类型语言转换为静态类型语言需要什么?[关闭]

  • 1
关闭。这个问题需要具体说明。目前不接受回复。

想改进这个问题? 重新构建问题,使其只关注一个问题。

3年前关闭。

改进问题

需要重做多少?简而言之,请告诉我们为此需要哪些步骤。例如,我真的很喜欢 Julia 语言,但那里的静态类型较差。

компилятор
  • 1 个回答
  • 10 Views
Martin Hope
Merlin
Asked: 2020-09-06 00:55:05 +0000 UTC

如何在没有主键且列中没有唯一值的表中找到相同的行?

  • 0

如何在没有主键和唯一字段值的表中查找和显示相同的行(按所有字段)?不依赖于 DBMS 的 ANSI SQL 标准代码是可取的。

sql
  • 2 个回答
  • 10 Views
Martin Hope
Merlin
Asked: 2020-09-04 20:56:02 +0000 UTC

xamarin 是免费的吗?

  • 0

Xamarin 是否可以通过在其上制作商业程序来免费使用?

android
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5