avoid_classes_with_only_static_members

Learn about the avoid_classes_with_only_static_members linter rule.

Avoid defining a class that contains only static members.

From Effective Dart:

AVOID defining a class that contains only static members.

Creating classes with the sole purpose of providing utility or otherwise static methods is discouraged. Dart allows functions to exist outside of classes for this very reason.

BAD:

dart

class DateUtils {
  static DateTime mostRecent(List<DateTime> dates) {
    return dates.reduce((a, b) => a.isAfter(b) ? a : b);
  }
}

class _Favorites {
  static const mammal = 'weasel';
}

GOOD:

dart

DateTime mostRecent(List<DateTime> dates) {
  return dates.reduce((a, b) => a.isAfter(b) ? a : b);
}

const _favoriteMammal = 'weasel';

To enable the avoid_classes_with_only_static_members rule, add avoid_classes_with_only_static_members under linter > rules in your analysis_options.yaml file:

analysis_options.yaml

yaml

linter:
  rules:
    - avoid_classes_with_only_static_members

If you're instead using the YAML map syntax to configure linter rules, add avoid_classes_with_only_static_members: true under linter > rules:

analysis_options.yaml

yaml

linter:
  rules:
    avoid_classes_with_only_static_members: true

Was this page's content helpful?