草庐IT

Java Lambda 引用封闭对象 : Replace with Private Static Class?

从其封闭范围引用元素的Javalambda持有对其封闭对象的引用。一个人为的例子,lambda持有对MyClass的引用:classMyClass{finalStringfoo="foo";publicConsumergetFn(){returnbar->System.out.println(bar+foo);}}如果lambda的生命周期很长,这是有问题的;然后我们有一个长期存在的MyClass引用,否则它会超出范围。在这里,我们可以通过用私有(private)静态类替换lambda来进行优化,这样我们就只持有对我们需要的字符串的引用,而不是对整个类的引用:classMyClass{

java - 为什么嵌套类的私有(private)成员可以被封闭类的方法访问?

这个问题在这里已经有了答案:WhycanouterJavaclassesaccessinnerclassprivatemembers?(10个答案)关闭9年前。谁能告诉我私有(private)成员(member)的访问级别?这段代码让我困惑了很久:为什么Line类的private成员k可以在outter类的print方法中访问到?publicclassmyClass{publicstaticclassLine{privatedoublek;privatedoubleb;privatebooleanisVertical;publicLine(doublek,doubleb,boolean

java - 未封闭的字符类错误?

这里是错误:Exceptioninthread"main"java.util.regex.PatternSyntaxException:Unclosedcharacterclassnearindex3],[^atjava.util.regex.Pattern.error(Pattern.java:1924)atjava.util.regex.Pattern.clazz(Pattern.java:2493)atjava.util.regex.Pattern.sequence(Pattern.java:2030)atjava.util.regex.Pattern.expr(Pattern.

java - 当一个没有引用其封闭类的匿名类从实例方法返回时,它有一个对此的引用。为什么?

当一个没有引用其封闭类的匿名类从实例方法返回时,它有一个对this的引用。为什么?考虑以下代码:packageso;importjava.lang.reflect.Field;publicclassSOExample{privatestaticObjectgetAnonymousClassFromStaticContext(){returnnewObject(){};}privateObjectgetAnonymousClassFromInstanceContext(){returnnewObject(){};}publicstaticvoidmain(String[]args)thr

java - 如何让内部类继承封闭类的泛型类型?

我正在使用Java6。我无法让我的内部类使用与其封闭类相同的泛型类。目前我有publicclassTernarySearchTree{...protectedclassTSTNode{//indexvaluesforaccessingrelativesarrayprotectedstaticfinalintPARENT=0,LOKID=1,EQKID=2,HIKID=3;protectedcharsplitchar;protectedTSTNode[]relatives;privateTdata;protectedTSTNode(charsplitchar,TSTNodeparent)

java - 在封闭类的父类(super class)型声明中使用嵌套类型作为泛型类型参数

我基本上有一个问题,为什么以下不起作用。我有一个抽象类:publicabstractclassAbstrct{}然后,我定义了一个类,该类使用了一个公共(public)内部类,我想将其用于泛型参数,如下所示:publicclassOuterextendsAbstrct{publicclassInner{}}由于我仍在学习Java,所以我对它为什么不起作用更感兴趣。与其说是如何让它发挥作用,不如说是我对此也很感兴趣。 最佳答案 Inner不在Outer类声明的范围内。在extends子句中使用时,它不是已知的类型名称。使用合格的引用:

java - 为什么匿名类不能访问其封闭类的变量?

Thisquestionalreadyhasanswershere:Whyareonlyfinalvariablesaccessibleinanonymousclass?(15个答案)7年前关闭。我正在阅读有关Java中匿名类的信息,它说您可以访问封闭类的方法,但不能访问局部变量。为什么会这样呢?我在说这个:编辑:较旧的示例是不正确的不反射(reflect)我的意思。根据在“访问封闭类的成员”一节http://docs.oracle.com/javase/tutorial/java/javaOO/localclasses.html中的内容,这应该是一个更好的示例。publicclass

Python:NameError:在封闭范围内赋值之前引用了自由变量 're'

我在Python3.3.1(win7)中有一个奇怪的NameError。代码:importre#...#Parseexcludepatterns.excluded_regexps=set(re.compile(regexp)forregexpinoptions.exclude_pattern)#Thisisline561:excluded_regexps|=set(re.compile(regexp,re.I)forregexpinoptions.exclude_pattern_ci)错误:Traceback(mostrecentcalllast):File"py3createtorr

python - 求封闭二维均匀三次 B 样条的面积

我有一个2d点列表,它们是闭合均匀三次B样条的控制顶点(Dx)。我假设一条简单的曲线(非自相交,所有控制点都是不同的)。我试图找到曲线所包围的区域:如果我计算结点(Px),我可以把曲线当作一个多边形;然后我“只”需要为每个段找到实际曲线和连接结点的直线之间的剩余增量区域。我知道B样条的形状(因此面积)在旋转和平移下是不变的-所以对于每个线段,我可以找到一个平移将t=0结放在原点和一个旋转将t=+x轴上的1个结:我可以通过插入点并重新分组来找到曲线的方程式:P(t)=((t**3)*(-Dm1+3*D0-3*D1+D2)+(t**2)*(3*Dm1-6*D0+3*D1)+t*(-3*Dm

python - 求封闭二维均匀三次 B 样条的面积

我有一个2d点列表,它们是闭合均匀三次B样条的控制顶点(Dx)。我假设一条简单的曲线(非自相交,所有控制点都是不同的)。我试图找到曲线所包围的区域:如果我计算结点(Px),我可以把曲线当作一个多边形;然后我“只”需要为每个段找到实际曲线和连接结点的直线之间的剩余增量区域。我知道B样条的形状(因此面积)在旋转和平移下是不变的-所以对于每个线段,我可以找到一个平移将t=0结放在原点和一个旋转将t=+x轴上的1个结:我可以通过插入点并重新分组来找到曲线的方程式:P(t)=((t**3)*(-Dm1+3*D0-3*D1+D2)+(t**2)*(3*Dm1-6*D0+3*D1)+t*(-3*Dm