问题标签 [utility-method]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
49 浏览

node.js - 将不同文件中函数的返回结果分配给变量

我在 utils 文件中有一个函数,我想调用它并将导出的结果分配给一个变量。

目前,变量已定义,然后我尝试分配返回结果,但是当我 console.log 它时,我得到未定义的结果。

这是我的 utils/consul 文件

然后在另一个文件中,我这样调用,然后尝试将值分配给“选项”,但未定义。

0 投票
1 回答
1467 浏览

java - 向实用程序类映射注入依赖项

我有一个实用程序/常量类,其中包含一个Map<String, Authorizer>带有Authorizer几个不同实现的接口。我使用跨不同流的映射来获取包含一些String(授权方法的名称)的对象,然后映射到特定Authorizer的 ,然后完成一些授权。

我正在使用 Guice 来连接Authorizer类,但这种方法使我无法使实用程序类(包含Map)成为具有空私有构造函数的真正实用程序类。我有一个看起来很时髦的解决方法,让 Guice 和 Checkstyle 都满意,但我想知道是否有更好的方法。

我的实用程序类:

我的常量模块:

以及一个示例用法:

这种方法还需要在单元测试中使用一些 PowerMock。有没有更好的方法:

  • 将授权方法的名称映射到一个Authorizer类,同时将映射保留在一个地方?
  • 将该Constants类用作真正的实用程序类,public static final Map<String, Authorizer> AUTH_METHODS同时仍然能够将授权者注入Map
0 投票
1 回答
177 浏览

java - 你喜欢重复代码而不是实用程序类吗?

我们有一个 Java 服务,它处理大量用户上传的文件,以及为不同模型准备这些文件以执行的任务。

一个这样的准备阶段包括覆盖 json 文件中的值。10 个任务中有 4 个应该这样做。

我创建了一个静态实用程序类,其中包含一个函数来覆盖 json 文件中的值,例如

然而,我的高级开发人员说,这个实用程序类几乎没有提供任何价值,而我试图保留 DRY 原则。最后我确实摆脱了这个实用程序类,现在覆盖 json 文件中的值的 4 行代码驻留在 4 个不同的文件中。

您是否认为从 OOP 的角度来看,这个类和方法不好?为什么和为什么不?

0 投票
1 回答
8785 浏览

flutter - 是否可以在 Flutter 的函数中将类作为参数传递?

在这里,我有一个实用程序类,其中我有一个显示对话框的函数,所以我试图制作一个可以在整个项目中的任何地方使用的 AlertDialog Box。

因此,我必须将标题、描述作为参数传递,并且还想传递类名,以便在按下警报对话框中的按钮时,我们可以导航到该屏幕

现在我一直在关闭对话框,但我想导航到另一个类。

0 投票
1 回答
2861 浏览

c# - 我应该在 Asp.Net Core MVC 项目中将常用实用程序方法放在哪里?

我目前在一个基本控制器中拥有所有常用的实用程序函数方法,我的所有控制器都继承自该基本控制器。这些是上传文件、调整图片大小、删除文件、发送电子邮件、生成随机密码、散列密码等功能的方法。

这类事物的推荐结构是什么?

0 投票
2 回答
117 浏览

c# - 如何使用类链静态调用实用程序方法?

我有一个“通用”项目的解决方案。此“通用”项目由解决方案中的其他项目使用。

在这个“Common”项目中,我有一个“Utilities”文件夹,其中包含几个不同的实用程序类,例如“CsvUtilities.cs”和“JsonUtilities.cs”。假设我可以有很多这样的类,并且这些类中的所有方法都是纯函数。基于此,将这些类和方法设为静态是有意义的。然后从其他项目中,我可以导入公共项目并执行以下操作:

这行得通,我认为这是相对正常的。

现在复杂的是我想创建一个层次结构来访问静态实用程序方法。我希望能够输入“实用程序”。在 IDE 中并让智能感知显示所有现有的实用程序类,然后是该实用程序类中的所有方法。

所以我想要的代码如下所示:

我通过执行以下操作实现了这个想法:

但是,这种解决方案存在一个大问题。为此,各种实用程序类及其方法必须不再是静态的,这对于实用程序类/方法来说很尴尬。

我找不到其他人做这样的事情的例子。我使用这个“实用程序”的最合理的方式是什么。结构,同时还保持实用程序类/方法静态?

0 投票
1 回答
115 浏览

javascript - 如何制作实用程序类或功能组件以公开少数常用实用程序方法

我是 ReactJs 的新手。我对其他 OOP 语言(如 Java、C++ 等)有很好的了解。这就是为什么我试图找到 OOP 和 ReactJs 之间的相似之处。正如我们在 Java 中所做的那样,我们创建了一个静态实用程序类来公开一些在整个应用程序中使用的常见功能。

我如何在 ReactJs 中做到这一点?我的场景就像我在 Reactjs 中通过 Axios 完成的与数据库通信的 CURD 方法很少。我需要几个组件中的所有 CURD 方法。所以我想制作 CurdApi.js 并将所有常见的 CURD 放在那里。后来我从其他组件中调用它们。可以在 Reactjs 中做吗?我可能的凝乳 API 就像:-

这些是可能无法纠正 ReactJs 语法的假设 CURD。我想将它们添加到实用程序类或功能组件中,以便在整个 ReactJs 应用程序中重用。有什么办法吗?

0 投票
1 回答
11 浏览

python-3.x - Python3 直接从类名调用函数。实用功能?静态函数?或者隐式实例化一个对象

我正在查看以下 python3 代码:

然后在代码的其他部分,MyClass 的用法如下:

我想知道是否MyClass().my_fun1(input1)隐式实例化 MyClass 的对象?或者这里的 MyClass() 被视为实用函数类?如果它是一个实用函数,为什么还要把它放在一个类中呢?或者它是一个静态类?但它my_fun1没有标记为静态函数?

对不起,我来自 C++/Java 背景,所以这对我来说有点奇怪......

非常感谢!

0 投票
1 回答
332 浏览

java - Objects.deepToString(Object o) 方法

该类java.util.Objects包含deepEquals(Object a, Object b)可用于比较任何类型的对象(包括数组和空引用)的方法,但不包含类似的deepToString(Object o). 这令人失望。(顺便说一下,这个类的私有构造函数包含消息“没有你的 java.util.Objects 实例!”这在一定程度上解释了为什么这个类如此卑鄙)。既然如此,我尝试自己实现该方法:

问题是它不适用于原始类型的一维数组。我是否必须遍历所有带有嵌套else ifs 的原始数组类型并为它们调用相应的Arrays.toString(...)方法,还是有更简单的替代方法?

0 投票
1 回答
468 浏览

java - 在实用程序类中反射方法并在 Java 中使用可变参数调用它们

我在 Java 中构建了一个 _VERY_ 基本实用程序类来处理数据库操作(连接检索、插入等),如下所示:

除了数据库助手之外,我还有两个像这样的数据库连接器(MySQL 和 SQLite)(显示 MySQL 连接器):

免责声明:请不要过分关注诸如使用snake_case(更多的是Javascript / PHP / Python / R-ish)变量命名约定,使用Throwable而不是,我正在构建实用程序类而不是完整Exception的事实- 成熟的类及其方法、属性以及其域(公共、私有、受保护等)正确设置的所有内容,以及许多其他应该存在但不存在的东西。这是(实际上)我使用 Java 的第二周,我非常愿意提出改进建议,我承认这里还有很多工作要做,所以要仁慈:P

也就是说,如果我尝试这样做:

我明白了:

如果我确实正确阅读了文档,我需要获取我打算反映的类的实例,获取我想要使用的特定方法getDeclaredMethod(因为我的任何实用程序类中的每个方法都是静态的),方法名称为String和可变数量的参数(或一个数组,如果我使用正确的话)以及我将要调用该方法的每个参数的类类型。

完成后,我需要调用null作为第一个参数传递的方法(因为它是一个静态方法,而静态方法不需要我试图为其调用特定方法的类的实例)和可变数量的参数(相同和以前一样)与参数本身。

我得到的那个错误e.printStackTrace()告诉我方法获取失败,或者是因为我没有正确指定类类型(我很怀疑使用Class<?>[]而不是,Class[]但 IntelliJ 抱怨Raw use of parameterized class 'Class')或者我没有真正得到一个实例我打算从中获取实例的类,而我得到了某种通用类对象(所以我看不到我正在寻找的方法)。

或者可能是因为我声明了一个私有构造函数来避免实例化(但我认为,在阅读了一些文章之后,实用程序类(如果你真的需要使用它们)应该有一个来避免实例化......因此私有构造函数声明)但是,不管怎样,我现在有点搞砸了:(

这个想法是能够连接到任何给定的数据库(因为现在只有 MySQL 和 SQLite,但将来可能是 Amazon Redshift、BigQuery、PostgreSQL、Oracle 等),但我可能会想到以错误的方式进行通用访问。

你能给我一个提示吗?