小编Tib*_*gan的帖子

当参数类型是基类时,将Derived类作为参数传递给方法

我是一个新手,并试图理解继承和设计模式的概念.

当我浏览一些博客时,我遇到了这种模式http://en.wikipedia.org/wiki/Strategy_pattern.

我发现它很有趣,想要了解更多.所以我开发了以下程序.

static void Main(string[] args)
{
    Context context;

    // Three contexts following different strategies
    context = new Context(new ConcreteStrategyAdd());
    int resultA = context.executeStrategy(3, 4);

    context = new Context(new ConcreteStrategySubtract());
    int resultB = context.executeStrategy(3, 4);

    context = new Context(new ConcreteStrategyMultiply());
    int resultC = context.executeStrategy(3, 4);

    Console.Read();
}      

abstract class Strategy
{
    public abstract int execute(int a, int b);

    public void Test()
    {
        Console.Write("tttt");
    }
}

class ConcreteStrategyAdd : Strategy
{
    public override int execute(int a, int b) …
Run Code Online (Sandbox Code Playgroud)

c# inheritance

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

为什么内联事件处理程序属性在现代语义HTML中是一个坏主意?

内联事件处理程序被认为是一种不好的做法吗?

例如: <button onclick=someFunction()>Click me!</button>

如果是这样,使用内联事件处理程序有什么缺点?

javascript events html5

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

为另一个pod添加预处理器宏

我正在创建一个CocoaPod框架(Pod B),它依赖于另一个CocoaPod框架(Pod A).Pod A使用的某些行为和文件位置由预处理器宏控制.有没有办法可以从Pod B提供一些这些宏,以便Pod B的用户不必知道或处理Pod A所需的设置?

我已经尝试在XCode中设置其中一些,但似乎构建Pod A不会从XCode中获取任何这些设置.最好不要修改Pod A的.xcconfig,除非它可以作为构建过程或Pod B的安装的一部分自动化.

更新 CocoaPods团队似乎已经讨论过解决这个问题,但我看不出是否有任何工作要做.想知道是否有人试图以其他方式解决这个问题.

我真的更愿意避免post_install在Podfile中使用标准机制,因为这需要Pod B的用户进行更改,因此要注意这些设置.

xcode cocoapods

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

什么相当于es5中的ES6方法(类)?

我们如何将es6类​​方法填充到ES5中?

我正在读一本书,它说的如下:

class Ninja {
    constructor(name) {
        this.name = name;
    }

    swingSword() {
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

是相同的

function Ninja(name) {
    this.name = name;
} 

Ninja.prototype.swingSword = function() {
    return true;
};
Run Code Online (Sandbox Code Playgroud)

我只是想问为什么我们在原型上添加swingSword而不是在构造函数中?

因为函数应该在对象上,而不是在原型链上.

我是对还是错?

javascript ecmascript-6 es6-class

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

如何在同一窗口而不是弹出窗口中打开谷歌登录对话框?

我有一个网站,用户可以在其中使用他们的 google 帐户登录。我正在使用 javascript google api.login 方法来显示 google 登录对话框。默认情况下,它会触发显示新的弹出窗口

如何打开要显示在用户单击 google 登录按钮的同一窗口中的 google 登录对话框?

   my code is like-- 

<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet" type="text/css">
<script src="https://apis.google.com/js/client:platform.js?onload=render" async defer></script>

<script type="text/javascript">

    function render() {
        gapi.signin.render('customBtn', {

            'callback': 'onSignInCallback',
            'clientid': 'my-client-id',
            'cookiepolicy': 'single_host_origin',
            'requestvisibleactions': 'http://schemas.google.com/AddActivity',
            'scope': 'https://www.googleapis.com/auth/plus.login  https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email'
        });
    }
</script>
<script type="text/javascript">  
    function onSignInCallback(authResult) {
        if (authResult['access_token']) {
            // The user is signed in
            var loc = '/account/SignInAsGoogleUser?accessToken=' + authResult['access_token'];
            window.location.href = loc;

        } else if (authResult['error']) {           
        }      
    }
</script>
<div …
Run Code Online (Sandbox Code Playgroud)

javascript google-plus

5
推荐指数
0
解决办法
1023
查看次数

使用jquery在div中包装内容

我试图在div中包装内容,但问题是html页面不可编辑所以我正在尝试其他方式,使用jQuery来包装以下所有内容divhtml结构

$(document).ready(function() {
  $("hr").before("<div class=wrapElement>");
	$("#disqus_thread").before("</div>");
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<hr>
<h4>Title Here</h4>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div id="disqus_thread"></div>
Run Code Online (Sandbox Code Playgroud)

问题打开div位于正确的位置,但是关闭div不在正确的位置,它应该在上面div id="disqus_thread"但不在那里,我如何将它放在这个位置?

jQuery版本是1.12.4

提前致谢

html javascript jquery

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

有没有可能的方法将Stringify转换为Object of Array

"[{"poll_watcher_id":5,"precinct_id":"","candidate_id":1,"count":"123"},
  {"poll_watcher_id":5,"precinct_id":"","candidate_id":9},
  {"poll_watcher_id":5,"precinct_id":"","candidate_id":6},
  {"poll_watcher_id":5,"precinct_id":"","candidate_id":3},
  {"poll_watcher_id":5,"precinct_id":"","candidate_id":7},
  {"poll_watcher_id":5,"precinct_id":"","candidate_id":4}]"
Run Code Online (Sandbox Code Playgroud)

这个输出只是一个字符串,我想要的是将它转换为对象数组,以便我使用此输出中的数据

javascript angularjs

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

在编译Java类并从命令控制台运行Java文件时,如何包含Java jar文件?

我有一个小的Java文件与postgresql数据库交互,所以我已经下载了驱动程序,并在我导入的文件中org.postgresql.Driver.

在命令控制台中我输入javac Myfilename.java; 然后它编译我运行java Myfilename它会抛出一个错误,说它无法找到org.postgresql.Driver文件.

那么如何在运行文件时导入jar或者在编译文件时不确定何时进行导入?

java compilation jar

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

JavaScript递归函数未返回值?

我解决了代码战的问题,我很确定我已经做到了:

function digital_root(n) {
    // ...
    n = n.toString();
    if (n.length === 1) {
        return parseInt(n);
    } else {
        let count = 0;
        for (let i = 0; i < n.length; i++) {
            //console.log(parseInt(n[i]))
            count += parseInt(n[i]);
        }
        //console.log(count);
        digital_root(count);
    }
}

console.log(digital_root(942));
Run Code Online (Sandbox Code Playgroud)

本质上,它应该找到“数字根”:

数字根是数字中所有数字的递归和。给定n,取n的数字之和。如果该值有两位数字,则以这种方式继续减小直到产生一位数字。这仅适用于自然数。

因此,我实际上在最后得到了正确的答案,但是无论出于何种原因,该if语句(我正在监视调试器的运行并确实输入了该语句,都会说返回值是正确的值。

但是,然后它跳出if语句并尝试从main digital_root函数返回?

为什么是这样?当它达到if声明时,它不应该突破吗?我很困惑,为什么它尝试跳出if语句,然后尝试不返回任何内容,digital_root因此返回值最终未定义?

javascript recursion

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

将Javascript对象数组转换为一个对象

假设我有一个像这样的数组

var myarray=[{"id":1234, "listtext":open, "prop3":value3 ,"prop4": value4},
             {"id":1235, "listtext":open, "prop3":value3 ,"prop4": value4},
             {"id":1236, "listtext":open, "prop3":value3 ,"prop4": value4},
             {"id":1237, "listtext":open, "prop3":value3 ,"prop4": value4}];
Run Code Online (Sandbox Code Playgroud)

但我想将它转换为这样的对象:

{1234:open,1235:close, 1236: pending,1237:awaiting response}
Run Code Online (Sandbox Code Playgroud)

可以这样做吗?我尝试过的所有方法都只能获得最后一个键值对.

javascript reactjs react-native

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

为什么 JAX-RS 会忽略瞬态关键字

在以下对象中:

class Foo implements Serializable {
    transient String bar;
    String baz;
}
Run Code Online (Sandbox Code Playgroud)

JAX-RS 将忽略瞬态关键字并仍然bar在响应中进行序列化。在这种情况下,要阻止它被序列化,您需要使用注释(即@XmlTransient)。这个要求背后的原因是什么?从表面上看。似乎只有关键字就足够了。

在哪些用例中关键字可能不足/不正确并且需要注释?

java jax-rs transient

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

字段级自定义解码器

我正在尝试实现字段级自定义解码,以便可以提供解码器功能来映射值。这最初是为了解决将“Y”和“N”的字符串值自动转换为真/假的问题。有没有更简洁的方法可以做到这一点?

这旨在用于一个相当不错的大小记录的单个字段......但有点失控。

主要目标不是必须手动实现记录中每个字段的解码,而是枚举它们并将默认解码器的结果用于没有自定义解码器的任何内容(这可能不应该被称为“解码器”)。

当前尝试如下所示:

class Foo: Decodable {
    var bar: String
    var baz: String

    init(foo: String) {
        self.bar = foo
        self.baz = ""
    }

    enum CodingKeys: String, CodingKey {
        case bar
        case baz
    }

    static func customDecoder(for key: CodingKey) -> ((String) -> Any)? {
        switch key {
        case CodingKeys.baz: return { return $0 == "meow" ? "foo" : "bar" }
        default:
            return nil
        }
    }

    required init(from decoder: Decoder) throws {
        let values: KeyedDecodingContainer = try decoder.container(keyedBy: CodingKeys.self)

        if let …
Run Code Online (Sandbox Code Playgroud)

swift codable

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