问题列表 - 第15312页

如何在执行GroovyShell后撤消元类更改?

例如,如果我执行修改String元类的Groovy脚本,则添加方法foo()

GroovyShell shell1 = new GroovyShell();
shell1.evaluate("String.metaClass.foo = {-> delegate.toUpperCase()}");
Run Code Online (Sandbox Code Playgroud)

当我在那之后创建一个新的shell并执行它时,更改仍然存在

GroovyShell shell2 = new GroovyShell();
Object result = shell2.evaluate("'a'.foo()");
Run Code Online (Sandbox Code Playgroud)

有没有办法在执行GroovyShell后撤消所有元类更改?我试过了

shell1.getClassLoader().clearCache();
Run Code Online (Sandbox Code Playgroud)

shell1.resetLoadedClasses();
Run Code Online (Sandbox Code Playgroud)

但这没有改变.

groovy metaprogramming

10
推荐指数
1
解决办法
2837
查看次数

在C#中的foreach循环中更新结构

我有这个代码(C#):

using System.Collections.Generic;

namespace ConsoleApplication1
{
    public struct Thing
    {
        public string Name;
    }

    class Program
    {
        static void Main(string[] args)
        {
            List<Thing> things = new List<Thing>();
            foreach (Thing t in things) //  for each file
            {
                t.Name = "xxx";
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

它不会编译.
错误是:

Cannot modify members of 't' because it is a 'foreach iteration variable'
Run Code Online (Sandbox Code Playgroud)

但是,如果我Thing改为a class而不是a struct,它会编译.

请有人解释一下发生了什么?

.net c# foreach

7
推荐指数
3
解决办法
2万
查看次数

CSS邻近兄弟选择器 - IE8问题

我正在使用UL/LI结构创建菜单系统.我正在尝试将兄弟选择器用于悬停/显示子菜单.

我正在使用这个;

#MainMenu li.Sel ul li.HasSub a:hover+ul {
     display: block;
}
Run Code Online (Sandbox Code Playgroud)

UL结构将是这样的;

<ul id='MainMenu'>
    <li class='Sel'>
    <a href='#'>Click Me</a>
        <ul>
            <li class='HasSub'>
                <a href='#'>Hover Over Me</a>
                <ul>
                    <li>Link</li>
                    <li>Link</li>
                </ul>
            </li>
        </ul>
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

据说,当悬停在"悬停在我上面"时,应显示兄弟ul.它在Firefox中运行良好,但在IE8中完全没有.我确定我之前看过IE8中使用的'+'兄弟选择器,我哪里出错了?

css siblings

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

按钮(保持"向上"或"向下")

我需要设置一个表格3按钮,当我点击按钮将其显示为按下而其他按钮显示时,当我点击另一个按钮时它应该"向下"而其他按钮"向上"

delphi

3
推荐指数
1
解决办法
2454
查看次数

Enterprise Architect:隐藏数据库图中的外键标签?

我正在使用Sparx Systems Enterprise Architect 7 Professional,我找不到隐藏数据库图中外键关联标签的方法.

是的,我知道我可以右键单击每个连接器并使用上下文菜单中的"设置可见性"选项,但我想必须有每个图表或golabal设置才能执行此操作.

感谢您的时间.

database enterprise-architect database-diagramming

7
推荐指数
1
解决办法
5687
查看次数

将软件版本附加到JAR文件名

我想附加一个Netbeans项目的输出JAR文件名,其中包含一些版本号:类似于1.0,2.0b或甚至是Subversion版本号.不过,我似乎无法找到任何相关信息.我也不确定这是否是构建系统(Ant)的责任,或者IDE(Netbeans)是否可以委派该过程.这样做有一个集中,干净的方式吗?

java ant netbeans

4
推荐指数
2
解决办法
2317
查看次数

如何在android中获取Webview的宽度和高度

我想确定它的宽度和高度WebView.我已经尝试过使用:

webView.getWidth();
webView.getHeight();
Run Code Online (Sandbox Code Playgroud)

但结果日志始终显示为0.

android android-widget

8
推荐指数
2
解决办法
2万
查看次数

使用相关实体更新实体框架

我正在使用EF尝试使用ASP.NET更新实体.我正在创建一个实体,设置它的属性然后将其传递回具有ID的单独图层上的EF,以便可以应用更改.我这样做是因为我只存储实体的ID,当它绑定到UI控件时.

一切都适用于标准属性,但我无法更新产品(相关实体)的Category.ID.我已经尝试过EntityKey,EntityReference和其他一些但不保存类别ID.这就是我所拥有的:

Product product = new Product();
product.CategoryReference.EntityKey = new EntityKey("ShopEntities.Categories", "CategoryID", categoryId);
product.Name = txtName.Text.Trim();
... other properties
StockControlDAL.EditProduct(productId, product);

public static void EditProduct(int productId, Product product) {
 using(var context = new ShopEntities()) {
     var key = new EntityKey("ShopEntities.Products", "ProductID", productId);
     context.Attach(new Product() { ProductID = productId, EntityKey = key });
     context.AcceptAllChanges();
     product.EntityKey = key;
     product.ProductID = productId;
     context.ApplyPropertyChanges("ShopEntities.Products", product);
     context.SaveChanges();
 }
}
Run Code Online (Sandbox Code Playgroud)

我真的想使用EF,但我似乎在使用ASP.NET时遇到了一些问题.

asp.net entity-framework foreign-keys

3
推荐指数
1
解决办法
7632
查看次数

更改Oracle JDBC瘦客户端标识符

连接到Oracle时,JDBC驱动程序将自己标识为Oracle的"JDBC瘦客户端"(在v $ session中称为"程序").v $ session中还有一个'ClientInfo'列可能用于此目的,但它始终为空.

我们需要识别连接到Oracle的不同应用程序(它们在同一主机上运行,​​因此v $ session中的'machine'列完全相同),因此可以更改Oracle JDBC瘦客户机驱动程序识别的方式本身(所以我们可以将应用程序名称放在其中)?

或者有推荐的方法吗?一个限制是我们在Struts中为一些应用程序执行此操作,这些应用程序在内部处理连接设置.

oracle jdbc

16
推荐指数
1
解决办法
2万
查看次数

二叉树与不同的节点类型

我正在研究一种用C++编写的有点复杂的数学代码.我正在使用(模板化)树结构进行自适应函数表示.由于某些数学属性,我最终会遇到需要从一种节点更改为另一种节点的情况.这需要在存储和性能方面透明地并且以最小的开销发生,因为这些结构用于非常繁重的计算.

具体情况如下:我有一个模板化的抽象基类,它定义了一般的双链节点的一般数学和结构属性.每个节点除了跟踪它的子节点之外,还需要来自它的父节点和顶级Tree类的信息.两个类继承自此类,FunctionNode和GenNode.这些类在存储和功能方面非常不同,并且不应该(至少是公开的)彼此的祖先.因此,我想构建一个这样的树:

     T
     N
    / \
   N    N
       / \
      G   N
     / \
    G   G
Run Code Online (Sandbox Code Playgroud)

其中T是树,N是普通的FunctionNode,G是GenNode.问题是N - G转换:N需要有G型子,G是N型父.由于N和G只是堂兄而不是兄弟,我不能将N*转换为G*.G足以知道N是一个BaseNode,但N必须以某种方式以多态方式存储G,以便在遍历树时自动调用正确的虚拟.任何想法如何优雅和有效地解决这个问题将不胜感激!:)当然有人可能会破解这个,但由于这是一个非常基础的代码,我想有一个很好的解决方案.未来可能会有很多此代码的衍生产品.

最好的祝福,

Jonas Juselius

特罗姆瑟大学理论与计算化学中心

c++ polymorphism binary-tree

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