小编Cla*_*rke的帖子

设计代理类的真正目的是什么?

我一直在研究代理类,但我不明白设计它的全部想法。

据我所知,到目前为止,它是一个包装对象,可以控制对原始对象的访问。但如果我们想控制它,为什么我们不能设计具有这些访问机制的原始类呢?

我读到这些代理对象对于跟踪方法调用、将方法调用路由到远程服务器非常有用。

但我搜索了一个可以用java向我解释这一点的问题,但我没有找到任何问题。

我将说明我所引用的书中的方法跟踪程序的代码。

public class ProxyTest {

  public static void main(String[] args) throws ClassNotFoundException {

     var elements = new Object[1000];

     // fill elements with proxies for the integers 1 . . . 1000
     for (int i = 0; i < elements.length; i++) {
       Integer value = i + 1;
       var handler = new TraceHandler(value);
       Object proxy = Proxy.newProxyInstance(ClassLoader.getSystemClassLoader(), new Class[]{Comparable.class}, handler);
       elements[i] = proxy;
     }

     // construct a random integer
     Integer key = new Random().nextInt(elements.length) + 1;

     // …
Run Code Online (Sandbox Code Playgroud)

java proxy

9
推荐指数
2
解决办法
3592
查看次数

如果我们在生成器对象引发“StopIteration”异常之前停止迭代会发生什么

我有一个 generator对象可以检查列表中的某个条件。这个程序适用于我的所有情况。

但我只想澄清一些关键点。

在我的程序中每当generator yield'No''Done'控制迭代停止并调用generator使用另一个参数调用时。

这可能是一个愚蠢的问题,无论如何,只要generator对象被让出并且我们停止在它旁边调用,该对象是否已被垃圾收集解决?或者当我们调用它时,产生的对象是否正在被垃圾收集generator用另一个参数再次。

请向我澄清generator如果我们在对象next()引发StopIteration异常之前停止调用它会发生什么。generator当我们再次使用新参数调用生成器时,当前对象的持久执行点和变量会发生什么变化。

python generator

5
推荐指数
1
解决办法
106
查看次数

标签 统计

generator ×1

java ×1

proxy ×1

python ×1